我无法通过Stack搜索我的问题。我的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');
}
});
答案 0 :(得分:3)
无需取消绑定并重新绑定只需使用标志:
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;
}
});
答案 1 :(得分:1)
您的最后一行代码不会将任何内容绑定到Click处理程序。您必须绑定一个函数
$('.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.6x你应该使用
在jquery 1.7 +
中答案 2 :(得分:1)
你没有将任何功能传递给.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);
}
});