3 回答
TA贡献1776条经验 获得超12个赞
您可以这样做:
在<a>班级上标记“取消”
通过对所有具有class =“ cancel”的元素进行操作来设置对话框:
$('a.cancel').click(function() {
var a = this;
$('#myDialog').dialog({
buttons: {
"Yes": function() {
window.location = a.href;
}
}
});
return false;
});
(加上其他选项)
这里的关键点是:
使它尽可能不引人注目
如果您只需要URL,那么您已经在href中拥有了它。
但是,我建议您将其设置为POST而不是GET,因为cancel操作具有副作用,因此不符合GET语义 ...
TA贡献1785条经验 获得超8个赞
jQuery提供了一种为您存储数据的方法,无需使用虚拟属性或查找问题的解决方法。
绑定点击事件:
$('a[href*=/Booking.aspx/Change]').bind('click', function(e) {
e.preventDefault();
$("#dialog-confirm")
.data('link', this) // The important part .data() method
.dialog('open');
});
和您的对话框:
$("#dialog-confirm").dialog({
autoOpen: false,
resizable: false,
height:200,
modal: true,
buttons: {
Cancel: function() {
$(this).dialog('close');
},
'Delete': function() {
$(this).dialog('close');
var path = $(this).data('link').href; // Get the stored result
$(location).attr('href', path);
}
}
});
TA贡献1801条经验 获得超8个赞
就您使用jQuery所做的事情而言,我的理解是您可以像平常一样链接函数,而内部函数可以访问外部函数。所以您的ShowDialog(x)函数包含这些其他函数,您可以在其中重新使用x变量,它将用作外部函数对参数的引用。
我同意mausch的观点,您应该真正考虑对这些操作使用POST,这将<form>
在每个元素周围添加一个标签,但是使自动化脚本或工具触发Cancel事件的可能性大大降低。更改操作可以保持原样,因为它(大概只是打开一个编辑表单)。
添加回答
举报