事件处理程序不会使用.on()触发,但可以使用.delegate()

时间:2016-10-27 00:14:59

标签: javascript jquery javascript-events event-handling bootstrap-modal

我正在使用Bootstrap Modal对话框,并且我设置了一个事件处理程序,这样一旦模式关闭,它就会触发页面上的其他几个更新。我一直在使用完美运行的.delegate方法。在阅读它被弃用之后,我尝试转移到.on方法,但是处理程序没有被触发。我无法弄清楚为什么。以下是我的两个代码片段供比较。

代表:

$(document).delegate('#streamingPopup', 'hide.bs.modal', function () { ... });

在:

$('#streamingPopup').on('hide.bs.modal', function () { ... });

没有带回调函数的代码已更改。

据我所知,我正在使用文档说它应该被使用的方式(http://api.jquery.com/on/)。我假设它与'hide.bs.modal'事件有关,或者它直接附加到jQuery对象而不是DOM本身,但我无法弄清楚为什么它可以在一个但不是另一个。谁能指出我做错了什么?

1 个答案:

答案 0 :(得分:0)

您可能需要更改.on的语法:

$(document).on('hide.bs.modal', '#streamingPopup', function () { ... });

这必须有效,因为它以静态父对象为目标。将document替换为#streamingPopup的静态父级。