0

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'); 
        });
    });        
  });
});
4

5 回答 5

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() 不会像以前那样工作......

于 2013-02-25T06:26:54.037 回答
1

尝试

jQuery(".list-year").on('click',(function() {        
于 2013-02-25T06:23:11.143 回答
0

因为您删除了放置单击处理程序的 .class ,所以您将其删除 - 您松开了该绑定。执行上述 Dipesh 建议的操作,对 jQuery 1.7 或更高版本使用“.on”,否则您可以使用“.live”(已弃用)。

于 2013-02-25T06:26:55.230 回答
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'); 
      });
    });        
  });
});

在默认情况下,将此类放到 lis 中:list-year li

于 2013-02-25T06:28:02.110 回答
0

试试 :D

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

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

  });
});
于 2013-02-25T06:31:43.587 回答