Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/88.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript jquery事件处理程序堆栈_Javascript_Jquery_Html - Fatal编程技术网

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");
       })
    }
);