代码之家  ›  专栏  ›  技术社区  ›  holden

带有li的jquery复选框

  •  3
  • holden  · 技术社区  · 14 年前

    有什么想法吗?

    //Tag cloud
    $(".tag-cloud li").toggle(
      function () {
        //$(this).filter(":checkbox").attr('checked', 'true');
        $(this).addClass("selected");
        return;
        //return $(this).filter(":checkbox").attr("checked", true);
      },
      function () {
        //$(this).filter(":checkbox").attr('checked', 'false');
        $(this).removeClass("selected");
        return;
        //$("#sortable").submit();
      }
    );
    
    2 回复  |  直到 14 年前
        1
  •  8
  •   Nick Craver    14 年前

    您可以通过使用一个简单的 .click()

    $(".tag-cloud li").click(function() {
     var cb = $(this).find(":checkbox")[0];
     $(this).toggleClass("selected", cb.checked);
    });
    

    这样做的好处是,无论它最初处于什么状态,在 .toggle() 对于预选框将关闭。

    如果你想 <li> 本身是可点击的,我们需要确保在点击实际的复选框时不会进入循环或反转切换(如果它是暴露的),如下所示:

    $(".tag-cloud li").click(function(e) {
     var cb = $(this).find(":checkbox")[0];
     //if the click wasn't from the checkbox already, toggle it
     if(e.target != cb) cb.checked = !cb.checked;
     $(this).toggleClass("selected", cb.checked);
    });
    
        2
  •  0
  •   Blair McMillan    14 年前

    return; 线。