Javascript jQuery-一次单击事件可以执行不同的操作

Javascript jQuery-一次单击事件可以执行不同的操作,javascript,jquery,javascript-events,Javascript,Jquery,Javascript Events,我只想要 $('.div_rightColumn').fadeOut("fast"); $('.div_rightColumn').fadeIn("fast"); 要在第一次单击时运行。有没有一种方法可以告诉jQuery仅在第一次单击并仅运行时执行此操作: $('.name_filter img').live("click", function() { $('#contactMessage').fadeOut(); $('.div_rightColumn').css({

我只想要

$('.div_rightColumn').fadeOut("fast");
$('.div_rightColumn').fadeIn("fast");
要在第一次单击时运行。有没有一种方法可以告诉jQuery仅在第一次单击并仅运行时执行此操作:

$('.name_filter img').live("click", function() {
      $('#contactMessage').fadeOut();
      $('.div_rightColumn').css({"margin" : "3px 0 0 0"});
});
其余的点击?下面已经满了…谢谢

$('.name_filter img').live("click", function() {
      $('#contactMessage').fadeOut();
      $('.div_rightColumn').fadeOut("fast");
      $('.div_rightColumn').fadeIn("fast");
      $('.div_rightColumn').css({"margin" : "3px 0 0 0"});
});

如果您只想侦听一次事件,可以使用.one


您可以执行以下操作:

var run = 0;
$('.name_filter img').live("click", function() {
      $('#contactMessage').fadeOut();
      if(run === 0){
           $('.div_rightColumn').fadeOut("fast").fadeIn("fast");
           run++;
       }
      $('.div_rightColumn').css({"margin" : "3px 0 0 0"});
});
另外,正如我在上面的评论中所说的,您应该真的,真的将您的live更改为代理,如:

$('.name_filter').delegate("img", "click", function() {
     //code
});

永远不要使用live()。生活会让事情变得更慢,你无法解开束缚,而它只是因为遗留的原因而存在。使用委托:它回答了他/她的50%的问题。是的,
once()
也很好,但我更喜欢使用变量,以防以后出于任何原因需要动态重置它。如果使用一次,则必须重新创建元素。