Repind A Live () Click Event после использования Die ()?
Вопрос
Я не смог решить свою проблему поиска через стек. У меня есть функция 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+
- Delegate (), связывать(), а также жить() были объединены в на()
- Undelegate (), unbind () а также умереть() были объединены в выключенный()
- Кроме того один() Добавлено, что позволит заслужить связанное событие только один раз.
Не связан с StackOverflow