有一个table,第一列是checkbox,绑定了行点击事件
function bindTRevent()
{
    var tr = $(id + " tr");//这里变量id是table的id
    tr.bind("click", rowclick);
    tr.first().unbind();
}
//行点击事件
function rowclick()
{
    var chkb = $("#" + this.id + " td:first-child").children();//this.id为该tr的id
    if (chkb.attr("checked") == true)
         chkb.removeAttr("checked");
    else
         chkb.attr("checked", "checked");
}
以上效果是点击该行任何地方都可以使该行第一列的checkbox被选择/取消选择,但是直接点击checkbox却没有任何作用,求解决办法。

解决方案 »

  1.   

    html代码:
    <table>
    <tr><th></th><th>序号</th><th>用户ID</th></tr>
    <tr id="div1_tr_1">
      <td><input id="div1_chk_1" type="checkbox"></td>
      <td>1</td>
      <td>3</td>
    </tr>
    <tr id="div1_tr_2">
      <td><INPUT id="div1_chk_2" type="checkbox"></td>
      <td>2</td>
      <td>8</td>
    </tr>
    </table>
      

  2.   

    绑定到checkbox很麻烦,我这个table是根据json自动生成的,关键是在点击checkbox的时候是先更改了checkbox的checked属性,才执行rowclick()这个函数,所以导致属性又变回去了,有没有什么办法能在rowclick的时候判断点击的是不是checkbox,如果是则不执行rowclick里面的属性变更,如果不是则执行
      

  3.   

    有没有什么办法能在rowclick的时候判断点击的是不是checkbox,如果是则不执行rowclick里面的属性变更,如果不是则执行你给tr绑定的,没办法判断
      

  4.   

    $(id + " tr td:first-child input").bind("click", function(event){ event.stopPropagation();});
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js"></script>
    <script>
    $(function(){
    id = "#tbl";
    bindTRevent()
    })
    function bindTRevent()
    {
      var tr = $(id + " tr");//这里变量id是table的id
      tr.bind("click", rowclick);
      tr.first().unbind();
      $(id + " tr td:first-child input").bind("click", function(event){ event.stopPropagation();});
    }
    //行点击事件
    function rowclick()
    {
      var chkb = $("#" + this.id + " td:first-child").children();//this.id为该tr的id
      if (chkb.attr("checked") == "checked")
      chkb.removeAttr("checked");
      else
      chkb.attr("checked", "checked");
    }
    </script>
    <table id="tbl">
    <tr>
    <td>A</td>
    <td>B</td>
    <td>C</td>
    <td>D</td>
    </tr>
    <tr id="t1">
    <td><input type="checkbox" ></td>
    <td>xxxxx</td>
    <td>xxxxx</td>
    <td>xxxxx</td>
    </tr>
    <tr id="t2">
    <td><input type="checkbox" ></td>
    <td>xxxxx</td>
    <td>xxxxx</td>
    <td>xxxxx</td>
    </tr>
    <tr id="t3">
    <td><input type="checkbox" ></td>
    <td>xxxxx</td>
    <td>xxxxx</td>
    <td>xxxxx</td>
    </tr>
    </table>
      

  5.   

    谢谢hookee大大,问题解决了,马上结贴