Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/420.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-重用元素的“Click”事件_Javascript_Jquery - Fatal编程技术网

JavaScript/jQuery-重用元素的“Click”事件

JavaScript/jQuery-重用元素的“Click”事件,javascript,jquery,Javascript,Jquery,我有一个元素,比如div。并将事件“单击”附加到它。在jQuery中,它将是: $('#myDiv').click(function(){ $(".class1").show(); }) 现在,我想分配一个新函数myDiv,替换旧函数。我正在这样做: $('#myDiv').click(function(){ $(".class23").hide(); }) 但当我在div上运行“click”时,就会执行我分配给该怀疑开头的函数 问题:如何删除将与归因于元素的单击事件

我有一个元素,比如div。并将事件“单击”附加到它。在jQuery中,它将是:

 $('#myDiv').click(function(){ 
    $(".class1").show();
 })
现在,我想分配一个新函数myDiv,替换旧函数。我正在这样做:

$('#myDiv').click(function(){ 
    $(".class23").hide();
})
但当我在div上运行“click”时,就会执行我分配给该怀疑开头的函数

问题:如何删除将与归因于元素的单击事件一起运行的函数?否使用所需的新单击事件重新创建元素…

您可以删除所有以前绑定的函数:

$('#myDiv').unbind('click');
或者,如果您只想解除一个特定函数的绑定:

var show = function() { 
   $(".class1").show();
};

$('#myDiv').click(show);
然后:

$('#myDiv').unbind('click', show); // unbind first function

$('#myDiv').click(function() {     // bind second function
    $(".class23").hide();
});
请注意.clickfunc只是.bind'click',func.

的快捷方式

您可以删除所有以前绑定的函数:

$('#myDiv').unbind('click');
或者,如果您只想解除一个特定函数的绑定:

var show = function() { 
   $(".class1").show();
};

$('#myDiv').click(show);
然后:

$('#myDiv').unbind('click', show); // unbind first function

$('#myDiv').click(function() {     // bind second function
    $(".class23").hide();
});
请注意.clickfunc只是.bind'click',func的快捷方式。

使用该函数删除所有单击事件

$('#myDiv').unbind('click');
使用该函数可删除所有单击事件

$('#myDiv').unbind('click');

在第一次单击事件上添加计数器

var counter = 0;
$('#myDiv').click(function(){ 
    if(counter>1){
       $(".class23").hide();
    }
    else
       $(".class1").show();

   counter++;
 })

仅举一个例子。

在第一次单击事件上添加计数器

var counter = 0;
$('#myDiv').click(function(){ 
    if(counter>1){
       $(".class23").hide();
    }
    else
       $(".class1").show();

   counter++;
 })

仅举一个例子。

如果您知道只需单击一次图元,则可以使用它在单击一次后自动解除绑定:

$("#myDiv").one("click", function() {  
  $(".class1").show();
  $("#myDiv").one("click", function(){ 
    $(".class23").hide();
  });
});

如果您知道只需单击一次图元,则可以使用它在单击一次后自动解除绑定:

$("#myDiv").one("click", function() {  
  $(".class1").show();
  $("#myDiv").one("click", function(){ 
    $(".class23").hide();
  });
});

尽管“取消绑定”是一个很好的解决方案,您说它可以改进我的代码。尽管“取消绑定”是一个很好的解决方案,您说它可以改进我的代码。