注册jQuery点击,第一次和第二次点击

有没有办法运行两个类似于此的函数:

$('.myClass').click( function() { // First click }, function() { // Second click } ); 

我想使用基本的切换事件,但不推荐使用.toggle()

试试这个:

 $('.myClass').click(function() { var clicks = $(this).data('clicks'); if (clicks) { // odd clicks } else { // even clicks } $(this).data("clicks", !clicks); }); 

这是基于一个已经回答的问题: 支持eventData的jQuery的.toggle()方法的替代方案?

或这个 :

 var clicks = 0; $('.myClass').click(function() { if (clicks == 0){ // first click } else{ // second click } ++clicks; }); 

我为我的菜单工作了

 var SubMenuH = $('.subBoxHederMenu').height(); var clicks = 0; $('.btn-menu').click(function(){ if(clicks == 0){ $('.headerMenu').animate({height:SubMenuH}); clicks++; console.log("abierto"); }else{ $('.headerMenu').animate({height:"55px"}); clicks--; console.log("cerrado"); } console.log(clicks); }); 

我不知道你在尝试做什么,但我们可以得到基本的切换

 $('.myClass').click({ var $this=$(this); if($this.is(':hidden')) { $this.show('slow'); }else{ $this.hide('slow'); } }) 

注意:这适用于该元素的无限点击事件..不仅仅是两次点击(如果这是你想要的)

或者您可以使用css类隐藏/显示div并使用jquery.toggleClass()

在下面提到的方法中,我们将一组函数传递给我们的自定义.toggleClick()函数。 我们使用HTML5 data-*属性来存储将在下一次点击事件处理过程中执行的函数的索引。 存储在data-index属性中的该值在每次迭代中更新,以便我们可以跟踪在下一次迭代中要执行的函数的索引。

所有这些函数将在每次单击事件的迭代中逐个执行。 例如,在第一次迭代中,将执行index[0]处的函数,在第二次迭代中,将执行存储在index[1]处的函数,依此类推。

在您的情况下,您只能将2个函数传递给此数组。 但是这种方法不仅限于2种function。 您可以在此数组中传递3,4,5或更多函数,它们将在不对代码进行任何更改的情况下执行。

下面的代码段中的示例是处理四个函数。 您可以根据自己的需要传递function。

 $.fn.toggleClick = function(funcArray) { return this.click(function() { var elem = $(this); var index = elem.data('index') || 0; funcArray[index](); elem.data('index', (index + 1) % funcArray.length); }); }; $('.btn').toggleClick([ function() { alert('From Function 1'); }, function() { alert('From Function 2'); }, function() { alert('From Function 3'); }, function() { alert('From Function 4'); } ]); 
    
  var click_s=0; $('#show_pass').click(function(){ if(click_s % 2 == 0){ $('#pwd').attr('type','text'); $(this).html('Hide'); } else{ $('#pwd').attr('type','password'); $(this).html('Show'); } click_s++; }); 
 When You click the selector it automatically triggers second and waiting for another click event. $(selector).click(function(e){ e.preventDefault(); // prevent from Posting or page loading //do your stuff for first click; $(this).click(function(e){ e.preventDefault();// prevent from Posting or page loading // do your stuff for second click; }); }); 

我希望这对你有帮助..

如果你只想要第一次和第二次点击:

 $('.myClass').one( 'click', function() { // First click $('.myClass').one( 'click', function() { // Second click }); );