Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/74.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 3.x.off()在.on()之后_Javascript_Jquery_Jquery 3 - Fatal编程技术网

Javascript jQuery 3.x.off()在.on()之后

Javascript jQuery 3.x.off()在.on()之后,javascript,jquery,jquery-3,Javascript,Jquery,Jquery 3,我只是在.click()方法的.on()方法之后使用了.off()方法。 我真的很困惑为什么单击()事件会触发 $('span').on('click',function(){$('p').text(“youclicked!”)}); $('span').off('click',函数(){ $('p').text(“哈哈哈!”)} span{ 背景色:#ac0; 填充物:5px; 光标:指针; } 点击我! *****您试图删除的处理程序函数与最初分配的不同 相反,创建对函数的引用,并通过该

我只是在.click()方法的.on()方法之后使用了.off()方法。
我真的很困惑为什么单击()事件会触发

$('span').on('click',function(){$('p').text(“youclicked!”)});
$('span').off('click',函数(){
$('p').text(“哈哈哈!”)}
span{
背景色:#ac0;
填充物:5px;
光标:指针;
}

点击我!
*****

您试图删除的处理程序函数与最初分配的不同

相反,创建对函数的引用,并通过该引用添加/删除它:

var clickHandler = function () { $('p').text("You Clicked!") };

$('span').on('click', clickHandler);
$('span').off('click', clickHandler);

您误解了
off()
方法末尾的函数的作用。它不是回调,而是事件处理程序

该函数应与最初设置的事件处理程序函数相同。这样做是为了可以删除单个单击处理程序

function handlerA(e) {
  console.log('heard by A');
}

function handlerB(e) {
  console.log('heard by B');
}

// add both handlers to click events
$('span').on('click', handlerA);
$('span').on('click', handlerB);

// remove the first click event only, leaving the second
$('span').off('click', handlerA);
单击时,上述内容仅记录B听到的

要删除所有单击处理程序,需要完全省略该函数

$('span').off('click');

@SalmanShariati别忘了标记一个正确答案