Jquery只工作一次

时间:2013-02-25 06:20:07

标签: 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'); 
        });
    });        
  });
});

5 个答案:

答案 0 :(得分:1)

尝试

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

答案 1 :(得分:1)

使用.on()将事件处理程序附加到父元素,并将选择器作为参数传递。

尝试:

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 +,toggle()将无法像以前一样工作......

答案 2 :(得分:0)

因为您删除了单击处理程序所在的.class,然后将其删除 - 您将松开该绑定。做上面的Dipesh建议对jQuery 1.7或更高版本使用“.on”,否则你可以使用“.live”(不推荐使用)。

答案 3 :(得分:0)

尝试切换课程.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'); 
      });
    });        
  });
});

on Default将此类设置为lis:list-year li

答案 4 :(得分:0)

尝试:D

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

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

  });
});