如何覆盖CMS注入的JavaScript代码

时间:2012-12-24 16:07:34

标签: jquery drupal javascript-events

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

2 个答案:

答案 0 :(得分:1)

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


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

最简单的解决方法是将自己的事件添加到元素中,并使用stopPropagation()来停止已绑定到祖先的事件处理程序。

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

...这方面的简写是通过false而不是function

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

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

答案 1 :(得分:0)

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

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

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

$('selector').off('eventName');