jquery-ui之如何检测是什么触发了 jquery ui 对话框中的关闭事件

freeliver54 阅读:60 2024-02-27 23:08:18 评论:0

我有创建和取消按钮作为 jquery-ui 模式对话框的一部分。仅当用户单击“创建”时,我才想在关闭对话框后执行某些操作。如果他们单击“取消”或“X”或按 Esc,我想做其他事情。有没有办法将参数传递给关闭事件处理程序或其他一些方法来检测导致关闭的原因?

请您参考如下方法:

在关闭事件中,您可以通过查看事件参数(参数 1)来判断发生了什么。

如果通过单击 关闭对话框[x] 然后你会得到 鼠标事件领域。

类似地,如果通过按 关闭对话框逃脱然后你会得到 键盘事件领域。

如果对话框以编程方式关闭,则上述两种方法都不适用。

因此,一个好的起点是查看 event.which。以 结束[x] 将意味着您获得鼠标按钮值(1 到 3),并以 结束逃脱将意味着您将获得 key 代码 (27)。以编程方式关闭意味着 event.which 将是未定义的。

现在回到你的问题...

如果他们按下“创建”,您想做一件事——这很简单,只需将其放入该按钮的功能中即可。

您想在 [x]、Escape 或单击 Cancel 上执行其他操作。创建一个名为 cancelled()(或其他)的函数,然后在取消按钮上调用该函数,如果 event.which 具有值,则在关闭事件中调用它。

像这样的东西...

buttons: { 
    'Create': function() { 
        // do your stuff here 
        $(this).dialog('close'); 
    }, 
    Cancel: function() { 
        cancelled(); 
        $(this).dialog('close'); 
    } 
}, 
close: function(event) { 
    if (event.which) { 
        cancelled(); 
    } 
} 

我认为这涵盖了您需要的内容,并且避免了创建变量来跟踪您去过的地方的麻烦。


标签:jquery
声明

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

关注我们

一个IT知识分享的公众号