str*_*oir 13 jquery overriding
我有这样的锚
<a href='#' onclick='return showform(this)'>click me</a>
Run Code Online (Sandbox Code Playgroud)
但我希望能够覆盖onclick函数,如何在jquery中执行此操作?
因为它似乎我添加
$('a').click( function() { alert('hi there!'); } );
Run Code Online (Sandbox Code Playgroud)
新的单击处理程序不会覆盖旧的单击处理程序
Sea*_*nJA 22
在您的情况下,onCick事件将覆盖jQuery事件.你可能做的是:
$('a').unbind('click').click(function(){
alert('why hello there children.');
})
Run Code Online (Sandbox Code Playgroud)
但我相信这必须包括在之后
<a href='#' onclick='return showform(this)'>click me</a>
Run Code Online (Sandbox Code Playgroud)
也就是说,你真的不应该使用onClicks ......它使得代码真的很难维护和改变(正如你已经发现的那样).
Ski*_*ick 10
如果您正在使用这样的jQuery,则不希望HTML中有任何处理程序.你能不能删除onClick属性?
如果你担心破坏东西,请搜索并替换:
onclick='return showform(this)'
Run Code Online (Sandbox Code Playgroud)
并替换为
class='showform'
Run Code Online (Sandbox Code Playgroud)
然后你可以这样做:
$('a.showform').click(function (e) {
e.preventDefault();
return showform(this);
});
Run Code Online (Sandbox Code Playgroud)
这将使您现有的处理程序工作.