我将有20个这样的“团体”:
$("#checkbox-apple").click(function(){
$("#graphic-apple").toggle();
})
$("#checkbox-orange").click(function(){
$("#graphic-orange").toggle();
})
$("#checkbox-pineapple").click(function(){
$("#graphic-pineapple").toggle();
})
我没有复制每个组并更改两个单词,而是通过使用任何复选框切换其等效图形,而不是复制每个组并更改两个单词?:
$("#checkbox" FRUIT).click(function(){
$("#graphic" FRUIT).toggle();
})
答案 0 :(得分:3)
给他们一个公共类(不是必要的,但很有用 - 下面我正在使用“fruit”)然后这是一个简单的字符串操作:
$(".fruit").click(function() {
$("#graphic-" + this.id.replace("checkbox-", "")).toggle();
});
(或许他们已经有了一些你可以使用的其他常用功能。)
或者,如果您不添加课程:
$("#checkbox-apple, #checkbox-orange, #checkbox-pineapple").click(function() {
$("#graphic-" + this.id.replace("checkbox-", "")).toggle();
});
您甚至可以删除id
值并改为使用data-fruit
:
<input type="checkbox" data-fruit="pineapple" class="fruit">
......然后:
$(".fruit").click(function() {
$("#graphic-" + $(this).attr("data-fruit")).toggle();
});
...但我不确定在上面的第一个解决方案中为你买了多少钱。 : - )
答案 1 :(得分:1)
您可以使用class
data
属性来指定toggle()
的哪个元素。试试这个:
<input type="checkbox" id="checkbox-orange" class="checkbox-fruit" data-related-graphic="#graphic-orange" />
$('.checkbox-fruit').click(function() {
$($(this).data('related-graphic')).toggle();
});