0

这是我的jQuery代码:

$(document).on('click', '.filter_author_wrapper', function(event) {

            var filter_author_wrapper_selected = $('.f_a_w_selected');
            var selected_authors_num = filter_author_wrapper_selected.length;

            if ($(this).hasClass('f_a_w_selected')) {
                $(this).removeClass('f_a_w_selected')
                    .queue(function() {
                        var filter_authors_selected = $('#filter_authors_selected');
                        filter_authors_selected.html(selected_authors_num + ' /');
                        $(this).dequeue();                      
                    });
            } else {
                $(this).addClass('f_a_w_selected')
                    .queue(function() {
                        var filter_authors_selected = $('#filter_authors_selected');
                        filter_authors_selected.html(selected_authors_num + ' /');
                        $(this).dequeue();                      
                    });
            }

        }); 

每次我点击一个元素.f_a_w_selected类都会被应用,或者如果它已经被应用就被删除,并计算有多少元素有这个类。

上面的代码计算了在点击之前具有特定类的元素。如何一键应用此类并使用此类计算元素?

我希望这是可以理解的!

4

1 回答 1

2

好吧...对不起,但是您的代码有点冗长,所以让我重写它...

$(document).on('click', '.filter_author_wrapper', function(event) {
  $(this).toggleClass('f_a_w_selected');
  var num = $('.f_a_w_selected').length;
  $('#filter_authors_selected').html(num + ' /');
});

此外,document可能不是与您的最近的祖先.filter_author_wrapper,因此为了从委托事件中获得更好的性能,请在初始化时将您的处理程序附加到 DOM 中最近的父元素

于 2012-11-19T21:42:55.873 回答