我无法通过堆栈解决我的问题。我在下面有Live()函数。您可以看到我要停止在功能运行时第二次单击的按钮,然后重新启动。该按钮死亡未连接,但不会再次绑定...:S

$('.control-left, .prevActive').live('click',function(){

    var firstSlide = $('.slider li:first-child');

    if(firstSlide.attr('class') != 'active'){   
        $('.control-left, .prevActive').die('click');   
        moveSlider('left');
        $('.control-left, .prevActive').live('click');
    }

});
有帮助吗?

解决方案

无需解开和重新固定,只需使用标志:

var running = false;
$('.control-left, .prevActive').live('click',function(){
    var firstSlide = $('.slider li:first-child');

    if(firstSlide.attr('class') != 'active' && !running){ 
        running = true;
        moveSlider('left');
        running = false;
    }
});

其他提示

您没有将任何功能传递给.live ..尝试以下操作:

$('.control-left, .prevActive').live('click',function hello(){

    var firstSlide = $('.slider li:first-child');

    if(firstSlide.attr('class') != 'active'){   
        $('.control-left, .prevActive').die('click');   
        moveSlider('left');
        $('.control-left, .prevActive').live('click', hello);
    }

});

您的最后一行代码不会将任何内容绑定到点击处理程序。您必须绑定功能

$('.control-left, .prevActive').live('click', function () { code here });

在您的情况下,您可能想做这样的事情

var myspecialclickfunction = function(){

  var firstSlide = $('.slider li:first-child');

  if(firstSlide.attr('class') != 'active'){   
      $('.control-left, .prevActive').die('click');   
      moveSlider('left');
      $('.control-left, .prevActive').live('click', myspecialclickfunction);
};

$(document).ready(function () {
  $('.control-left, .prevActive').live('click',myspecialclickfunction);
});

也应该使用JQUERY 1.42至1.6倍

在JQuery 1.7+中

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top