0

我有两个类似的 HTML 块(一个用于新闻,第二个用于特价),它们的底部都有分页按钮,所以我尝试构建一个通用功能来独立更改每个块的分页按钮状态(活动/非活动),但我失败了。这就是问题所在。我该怎么做?

这是 JSFiddle:http: //jsfiddle.net/iamsvyat/5TjKQ/

HTML:

<div id="news-block">News Block</div>
<div class="pag-circles">
    <button class="pag-circle-1 active">&nbsp;</button>
    <button class="pag-circle-2 inactive">&nbsp;</button>
    <button class="pag-circle-3 inactive">&nbsp;</button>
    <button class="pag-circle-4 inactive">&nbsp;</button>
</div>
<div id="special-offers-block">Special Offers Block</div>
<div class="pag-circles">
    <button class="pag-circle-1 active">&nbsp;</button>
    <button class="pag-circle-2 inactive">&nbsp;</button>
    <button class="pag-circle-3 inactive">&nbsp;</button>
    <button class="pag-circle-4 inactive">&nbsp;</button>
</div>

CSS:

button {
    width: 0;
    height: 0;
    margin: 0;
    padding: 0;
    border: 6px solid black;
    border-radius: 6px;
}
.active {
    border-color: red;
}
.inactive {
    border-color: black;
}
button:focus {
    outline: none;
}
button:active {
    position: relative;
    top: 1px;
}

jQuery:

$("#news-block").next(".pag-circles").children().click(function() {
    //if the first button is clicked
    //if the second button is clicked
    //if the third button is clicked
    //if the fourth button is clicked
});
$("#special-offers-block").next(".pag-circles").children().click(function() {
    //if the first button is clicked
    //if the second button is clicked
    //if the third button is clicked
    //if the fourth button is clicked
});
4

4 回答 4

1

使用事件委托在这里检查此修订

$("#firstCommonAncestor").on('click', 'button',function (e) {
    var t = $(this);
    t.addClass('active').removeClass('inactive').siblings().removeClass('active').addClass('inactive')
});
于 2013-10-19T18:17:35.617 回答
1

我想这在技术上是可行的:http: //jsfiddle.net/5TjKQ/8/

不过,我不得不给你的pag-circles班级div一些 id。

于 2013-10-19T18:18:07.207 回答
1

好吧,您可以使用 attirbute 选择器^或为两者提供相同的类并使用类选择器。

$('button[class^="pag-circle-"]').click(function(){
   $(this).removeClass('inactive')
          .addClass("active")
          .siblings()
          .removeClass('active')
          .addClass("inactive");
});

小提琴

于 2013-10-19T18:19:17.667 回答
1

签出这个小提琴http://jsfiddle.net/5TjKQ/10/

您可以获得单击按钮的参考并添加/删除相关类,如下所示

$('.pag-circles button').on('click',function(){
    $(this).removeClass('inactive').addClass('active'); 
});

此外,您还需要更新其余按钮的类。$.each 函数可以解决问题。查看上面给出的 js fiddle 链接以获得完整的解决方案。

于 2013-10-19T18:20:25.670 回答