Вопрос

Я не смог решить свою проблему поиска через стек. У меня есть функция 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,6x вы должны использовать

  • Delegate () для связывания с будущими элементами
  • Undelegate () для того, чтобы рассказать о делегированных мероприятиях

в jQuery 1.7+

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top