2

我想覆盖 Drupal 菜单编写的悬停事件。因为我无法修改 Drupal 编写的代码,所以我想知道如何查看它然后覆盖它。

4

2 回答 2

2

您可以通过检查页面中包含的 JavaScript 来查看代码是如何工作的......我想像 Drupal 这样的 CMS,虽然 JavaScript 构建在 jQuery 之上,但试图找到添加此事件的确切位置将类似于寻找针大海捞针。


虽然$('selector').off('eventName');在基本情况下可以工作(即,如果事件处理程序直接附加到元素),但在处理程序绑定到祖先的情况下将无法工作。

解决此问题的最简单方法是将您自己的事件添加到元素并用于stopPropagation()停止已绑定到祖先的事件处理程序触发。

$('selector').off('eventName').on('eventName', function (e) {
    e.stopPropagation();
});

...对此的简写是通过false而不是function

$('selector').off('eventName').on('eventName', false);

有关详细信息,请参阅on()

于 2012-12-24T16:16:04.813 回答
0

使用events对象查看附加到对象的事件:

$('selector').data('events')

或者您可以一起删除 jQuery 事件:

$('selector').off('eventName');
于 2012-12-24T16:09:15.033 回答