我有两个相似的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"> </button>
<button class="pag-circle-2 inactive"> </button>
<button class="pag-circle-3 inactive"> </button>
<button class="pag-circle-4 inactive"> </button>
</div>
<div id="special-offers-block">Special Offers Block</div>
<div class="pag-circles">
<button class="pag-circle-1 active"> </button>
<button class="pag-circle-2 inactive"> </button>
<button class="pag-circle-3 inactive"> </button>
<button class="pag-circle-4 inactive"> </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
});
答案 0 :(得分:1)
使用事件委派HERE
检查此修订$("#firstCommonAncestor").on('click', 'button',function (e) {
var t = $(this);
t.addClass('active').removeClass('inactive').siblings().removeClass('active').addClass('inactive')
});
答案 1 :(得分:1)
我想这在技术上有效:http://jsfiddle.net/5TjKQ/8/
我必须给你的pag-circles
班div
一些内容。
答案 2 :(得分:1)
你可以使用^
的属性选择器,或者为两者提供相同的类,并使用类选择器。
$('button[class^="pag-circle-"]').click(function(){
$(this).removeClass('inactive')
.addClass("active")
.siblings()
.removeClass('active')
.addClass("inactive");
});
答案 3 :(得分:1)
查看此小提琴http://jsfiddle.net/5TjKQ/10/
您可以获取点击按钮的参考,并添加/删除相关课程,如下所示
$('.pag-circles button').on('click',function(){
$(this).removeClass('inactive').addClass('active');
});
此外,您还需要更新其余按钮的类。 $ .each函数可以解决这个问题。查看上面给出的js小提琴链接以获得完整的解决方案。