javascript - 如何在js中过滤点击元素?

标签 javascript jquery css

这是我目前的代码:

$(".prod-page").each(function() {
    $(this).click(function() {
         $(".cat-item").filter(function(index) {
         // something goes here I guess?
         });
    });
});

HTML:

<div class="row">
    <div class="cat-item"></div>
    <div class="cat-item"></div>
<div class="cat-item"></div>
    (more here)
</div>

根据元素数量动态添加页面按钮(每页 12 个):

numItems = $('.cat-item').length;
numPages = numItems / 12;
lastPage = numItems % 12;

for (i = 0; i <= numPages; i++) {
$('#page-counter').append('<div class="prod-page"></div>' );
}

if (lastPage >= 1) {
$('#page-counter').append('<div class="prod-page"></div>' );
}

$(".prod-page").each(function(i) {
$(this).text(++i);
});

.cat-item 有一个 display: none set in css 并且有多个类为 .prod-page 的按钮。

当点击 .prod-page 按钮时,我想显示前 12 个元素,然后显示下 12 个类为 .cat-item 的元素(未定义的次数)。

知道如何解决这个问题吗?最好的办法是修改我已经编写的代码。

最佳答案

试试这个-

当你生成页面按钮时添加某种页面id

for (i = 0; i <= numPages; i++) {
    $('#page-counter').append('<div class="prod-page" data-pageid="'+i+'"></div>' );
}

然后点击处理程序将知道要显示哪个页面:

$(".prod-page").click(function() {
    var $button = $(this);
    var page_id = $button.data('pageid');
    var $items = $(".cat-item");
    for (var i=0; i< $items.length; i++) {
       if (i < page_id * 12 ||  i >= (page_id+1)*12 ) {
          $($items[i]).hide();
       }
       else {
          $($items[i]).show();
       }
    }
});

关于javascript - 如何在js中过滤点击元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23865868/

相关文章:

javascript - removeAttr 删除在 IE 中不起作用的标题

css - 媒体查询无法正常工作

javascript 根据表单输入将用户重定向到目录

javascript -/n 不显示为换行符

jQuery 验证插件 : apply one rule on all required fields

javascript - Node js 脚本崩溃 : Process finished with exit code 139 (interrupted by signal 11: SIGSEGV)

javascript - 在 jQuery 悬停时移动 div 背景位置

javascript - 如何定位特定 <DIV> 的 jQuery 对话框 "Center and Middle"

javascript - 单击内容区域外部关闭 GLightbox 画廊

javascript - 在 JavaScript switch 语句中假设严格比较是否安全?