我使用了一个相当复杂的Web UI,其中包含大量的javascript,其中大部分是使用jquery实现的。我的工作是覆盖默认的javascript,并尝试让客户满意于这里和那里的小型自定义。
有时我知道在UI中有一些javascript,我需要覆盖它们,但是我可能需要很长时间来跟踪它们。一旦我跟踪它们,我还没有找到一种阻止可能为选择设置的默认jquery事件的好方法。
是否有一种简单的方法可以使用jquery进行选择,然后为其定义自己的操作,或者完全阻止选择的jquery?
例如,默认UI 似乎为所有链接定义onclick事件,这使我无法执行向链接添加target =“_ blank”的看似简单的任务。我说“似乎”因为我无法找到正在执行此操作的javascript,但我需要这样才能进行小的自定义。
答案 0 :(得分:2)
检查我们的jQuery stopImmediatePropagation()。它可以防止调用其他事件处理程序。
答案 1 :(得分:0)
您可以遍历对象并检查每个对象是否为预期的vanilla javascript事件处理程序:
$('a').each(function(){
if ($(this).get(0).onclick != '') {
$(this).get(0).onclick = '';
}
});
答案 2 :(得分:0)
如果您知道要停止事件的元素,则可以始终使用unbind()
。然后将新的事件处理程序绑定到您的元素。您可以指定要取消绑定的事件类型,也可以不带参数调用它,它将取消绑定附加到元素的所有事件。