Javascript jquery事件处理程序堆栈
我有这样的想法:Javascript jquery事件处理程序堆栈,javascript,jquery,html,Javascript,Jquery,Html,我有这样的想法: 函数changeOnClick(){ $(“#容器a”)。解除绑定('click'); $(“#容器a”)。在('click',function()上{ 警报(“即时更改”); }) } 链接有一个内联onclick事件,我不能解除绑定并绑定一个新的处理程序,它们只是因为某种原因而堆叠 是否可以解除内联处理程序的绑定?如果您以前使用.bind()附加了事件处理程序,则只能将其解除绑定: 与.bind()连接的事件处理程序可以与.unbind()一起删除 对于内联事件
函数changeOnClick(){
$(“#容器a”)。解除绑定('click');
$(“#容器a”)。在('click',function()上{
警报(“即时更改”);
})
}
链接有一个内联onclick事件,我不能解除绑定并绑定一个新的处理程序,它们只是因为某种原因而堆叠
是否可以解除内联处理程序的绑定?如果您以前使用.bind()
附加了事件处理程序,则只能将其解除绑定:
与.bind()连接的事件处理程序可以与.unbind()一起删除
对于内联事件处理程序,请使用:
$("#container a").removeAttr("onclick");
或
我会这样做:
$(document).ready(
function(){
$("#container a").removeAttr("onclick");
$("#container a").on('click', function() {
alert("changed on the fly");
})
}
);
好吧,我理解这是因为选择器返回数组,但是为什么处理程序会堆叠起来呢?我想知道,它应该被更换,不能接受在几分钟内我会一旦我can@FarzadBekran:jQuery不使用
onclick
,而是使用addEventListener
。没有一个值可以这样覆盖。
$("#container a")[0].onclick = null;
$(document).ready(
function(){
$("#container a").removeAttr("onclick");
$("#container a").on('click', function() {
alert("changed on the fly");
})
}
);