【问题标题】:Count elements on click点击时计算元素
【发布时间】:2012-11-19 21:38:01
【问题描述】:

这是我的 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 时,都会应用该类,如果已经应用则将其删除,并计算有多少元素具有该类。

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

我希望这是可以理解的!

【问题讨论】:

  • 一键是什么意思?不是一键搞定吗?

标签: jquery class click


【解决方案1】:

好的...抱歉,但是您的代码有点冗长,所以让我重写它...

$(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

【讨论】:

    猜你喜欢
    • 2015-09-28
    • 2018-10-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多