Javascript 使用toggleclass更改div的范围时出现问题

Javascript 使用toggleclass更改div的范围时出现问题,javascript,jquery,javascript-events,blueprint-css,toggleclass,Javascript,Jquery,Javascript Events,Blueprint Css,Toggleclass,我正在使用blueprint css框架。我有一篇跨越24列的文章,但我试图使用jquery toggleclass(onclick)将其减少到20列,并显示其余4列中操作的按钮 $("div").each(function() { $(this).click(function() { $(this).toggleClass("span-24"); $(this).toggleClass("span-20"); }); }); 我有多个div,所以我使用每个div。但它不

我正在使用blueprint css框架。我有一篇跨越24列的文章,但我试图使用jquery toggleclass(onclick)将其减少到20列,并显示其余4列中操作的按钮

$("div").each(function() {
  $(this).click(function() {
   $(this).toggleClass("span-24"); 
   $(this).toggleClass("span-20");
  });
});
我有多个div,所以我使用每个div。但它不起作用


非常感谢您的帮助。

您可以将单击事件绑定到所有div,而不必使用
每个
循环。此外,您还可以使用这些跨度的
:gt()
,然后使用
切换()

$("div").click(function() {
    $(this).find("span:gt(19)").toggle();
});

此代码应执行您所要执行的操作:

$("div").toggle(function() {
    $(this).attr("class", "span-24");
}, function() {
    $(this).attr("class", "span-20");
});
  • 您不想在所有
    div
    上切换类,而只想切换包含内容的类
  • 您甚至可以进一步简化此代码:

    $('#toggler')。单击(函数(){ $(“#content”).toggleClass('span-20 span-24'); });

  • #toggler.click()
    只是可以运行
    toggleClass()
    的事件之一,在HTML中它可以是onload或其他类型:

    $('#content').toggleClass('span-20 span-24'); //main code (and all of it, too)
    
    示例:

    您也可以这样做:

    $("div").click(function() { $(this).toggleClass("span-20 span-24"); });