Javascript ';切换类别';不在其他部门工作

Javascript ';切换类别';不在其他部门工作,javascript,jquery,html,css,onclick,Javascript,Jquery,Html,Css,Onclick,出于某种奇怪的原因,我添加的这个简单的click函数,应该是将“big”类添加到clicked div中,它只适用于其他每个div (单击带有图像的方形框) 这是一个小提琴,但我选择不张贴,因为它的作品很好,因为它应该这样做。这个错误是由其他因素引起的,但我不知道是什么原因 您可以在循环中绑定单击处理程序,但在将所有元素添加到页面时只需执行一次 $.each(data.feed.entry, function (i, entry) { // ... $container.append(i

出于某种奇怪的原因,我添加的这个简单的click函数,应该是将“big”类添加到clicked div中,它只适用于其他每个div

(单击带有图像的方形框)

这是一个小提琴,但我选择不张贴,因为它的作品很好,因为它应该这样做。这个错误是由其他因素引起的,但我不知道是什么原因

您可以在循环中绑定
单击
处理程序,但在将所有元素添加到页面时只需执行一次

$.each(data.feed.entry, function (i, entry) {
  // ...
  $container.append(item);
  // ...
})

$('.box').click(function(){
  $(this).toggleClass('big').siblings().removeClass('big');
}
正如@Yan Brunet的评论所指出的,最好将事件从每个
.box
委派给他们的家长。这样,您就可以在任何时候绑定处理程序(甚至在
.box
元素添加到页面之前)


请在您的问题中发布一个完整的代码示例。可能是因为每个其他元素都有一个不同的类。不,所有元素都有javascript调用的类“.big”。最好以这种方式委托事件:
$(“#content”)。on(“click”、“.box”、function(){})@YanBrunet,是的,你是对的,这样会更好。在提出建议之前,我先找出问题所在,然后再补充。这很有趣。bboy beatle:使用委托可能会阻止这种行为,因为无论何时创建元素,它都会应用。性能方面也更好(每个
.box
项只创建1个处理程序,而不是1个)
$.each(data.feed.entry, function (i, entry) {
  // ...
  $container.append(item);
  // ...
})

$('.box').click(function(){
  $(this).toggleClass('big').siblings().removeClass('big');
}
$container.on("click", ".box", function(){
  $(this).toggleClass('big').siblings().removeClass('big');
});