Riz*_*Riz 3 jquery-ui modal-dialog
我有创建和取消按钮作为jquery-ui模式对话框的一部分.只有当用户点击"创建"时,我才想在关闭对话框后做某些事情.如果他们点击"取消",或"X"或按Esc,我想做其他事情.有没有办法将参数传递给close事件处理程序或其他一些方法来检测导致关闭的原因?
在关闭事件中,您可以通过查看事件参数(参数1)来判断发生了什么.
如果通过单击[x]关闭对话框,则会获得鼠标事件字段.
同样,如果通过按Escape关闭对话框,则会获得键盘事件字段.
如果以编程方式关闭对话框,则上述情况均不适用.
所以,一个好的起点是看看event.which.用[x]关闭意味着你得到鼠标按钮值(1到3),用Escape关闭意味着你得到关键代码(27).以编程方式关闭意味着event.which将是未定义的.
现在回到你的问题......
如果他们按下Create,你想要做一件事 - 这很简单,只需将它放在该按钮的功能中即可.
您想在[x],Escape或单击取消上执行其他操作.创建一个名为canceled()(或其他)的函数,然后在Cancel按钮上调用该函数,如果event.which有值,则在close事件中调用它.
像这样......
buttons: {
'Create': function() {
// do your stuff here
$(this).dialog('close');
},
Cancel: function() {
cancelled();
$(this).dialog('close');
}
},
close: function(event) {
if (event.which) {
cancelled();
}
}
Run Code Online (Sandbox Code Playgroud)
我认为这涵盖了你所需要的东西,它避免了制造一个变量来跟踪你去过的地方.