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(...));