jquery覆盖事件
我有这样的锚
click me
但我希望能够覆盖onclick函数,如何在jquery中执行此操作?
因为它似乎我添加
$('a').click( function() { alert('hi there!'); } );
新的点击处理程序不会覆盖旧的处理程序
你尝试过这样的事情:
$("a").removeAttr("onclick");
在您的情况下,onCick事件将覆盖jQuery事件。 你可能做的是:
$('a').unbind('click').click(function(){ alert('why hello there children.'); })
但我相信这必须包括在之后
click me
也就是说,你应该真的不使用onClicks ……它使得代码真的很难维护和改变(正如你已经发现的那样)。
如果你正在使用这样的jQuery,你不希望HTML中有任何处理程序。 你不能只删除onClick
属性吗?
如果你担心破坏东西,请搜索并替换:
onclick='return showform(this)'
并替换为
class='showform'
然后你可以这样做:
$('a.showform').click(function (e) { e.preventDefault(); return showform(this); });
这将使您现有的处理程序工作。
有一个插件,但你应该只在你需要的时候这样做。 该插件允许您调用原始函数或完全忽略/替换它
jQuery Override插件
$(divElementObj).override('onclick', 'click', function(...));