2013-02-25 7 views
0

Код jquery проходит через вложенный список. Как только он загружается, он работает хорошо один раз (классы переключателей), но полный щелчок по нему не будет повторяться. Класс переключает треугольную пулю слева направо вниз. Я не могу понять, как заставить его повторить. Любая помощь очень ценится.JQuery работает только один раз

jQuery(document).ready(function() { 
    jQuery(".list-year").click(function() {   
    jQuery(this).removeClass('list-year li'); 
    jQuery(this).addClass('list-year-down li'); 
    jQuery('.list-month').toggle(function() { 
     jQuery(".list-year-down").click(function() { 
      jQuery(this).removeClass('list-year-down li'); 
      jQuery(this).addClass('list-year li'); 
     }); 
    });   
    }); 
}); 
+3

лучше использовать toggleClass – EnterJQ

ответ

1

Попытка

jQuery(".list-year").on('click',(function() {   
+0

Спасибо, но это все еще только работает один раз. Он будет переключать список вверх и вниз без проблем, но он не будет менять классы. – user1625714

1

Присоединить обработчик события к родительскому элементу с использованием .on(), и передать селектор в качестве аргумента.

Try:

jQuery(document).ready(function() { 
    jQuery(document).on('click, '.list-year', function() {   
    jQuery(this).removeClass('list-year li'); 
    jQuery(this).addClass('list-year-down li'); 
    jQuery('.list-month').toggle(function() { 
     jQuery(".list-year-down").click(function() { 
      jQuery(this).removeClass('list-year-down li'); 
      jQuery(this).addClass('list-year li'); 
     }); 
    });   
    }); 
}); 

отметить также, что для JQuery 1.9.1 +, переключение() не будет работать, как и раньше ...

0

Потому что вы удалите .class, которые вы положили щелчок обработчик, ТОГДА вы его удаляете - вы теряете эту привязку. Сделайте то, что предлагает Dipesh выше, используйте «.on» для jQuery 1.7 или выше, иначе вы можете использовать «.live» (устаревший).

0

попробовать Toggling класс .toggleClass():

jQuery(document).ready(function() { 
    jQuery(".list-year").click(function() {   
    jQuery(this).toggleClass('list-year-down'); 
    jQuery('.list-month').toggle(function(e) { 
     e.stopPropagation(); 
     jQuery(".list-year-down").click(function() { 
     jQuery(this).toggleClass('list-year-down'); 
     }); 
    });   
    }); 
}); 

по умолчанию поставить этот класс к СЛИ: list-year li

0

попробовать: D

jQuery(document).ready(function() { 
    jQuery(".list-year").click(function() {   

    jQuery(this).toggleClass('list-year list-year-down'); 

    }); 
});