0

在我添加 (#check_all) 之前,我的脚本运行良好,我的复选框不起作用,但它们单独运行良好。我找不到问题,请帮忙。

我的脚本

<script type="text/javascript">
$(document).ready(function(){

$(".bt").click(function(){
    $(".select_box").hide('fast');
    if ($(this).next('.select_box').is(':visible')){
        $(this).next(".select_box").hide('fast');
    }
    else{
        $(this).next(".select_box").fadeIn('fast');
    }
});
$(document).click(function() {
    $(".select_box").hide();
});
$(".bt,.select_box").click(function(e) {
    e.stopPropagation();  
    return false;                             
});

$('#check_all').click(function(){
    $(this).parents('div:eq(0)').find(':checkbox').attr('checked', this.checked);
}); 
});

</script>

html

<a class="bt" href="#">[X]</a>
<div class="select_box" style="display:none;border:1px solid;">
    <input id="check_entite" type="checkbox" />(Select All)<br />
    <input type="checkbox" />1<br />
    <input type="checkbox" />2<br />
</div>
<br><br>
<a class="bt" href="#">[X]</a>
<div class="select_box" style="display:none;border:1px solid;">
    <input id="check_all" type="checkbox" />(Select All)<br />
    <input type="checkbox" />1<br />
    <input type="checkbox" />2<br />
</div>
4

4 回答 4

0
$(this).closest('div').find(':checkbox').attr('checked', this.checked);
于 2013-03-18T11:46:59.007 回答
0

看到这个:样本

$(document).ready(function () {

  $(".bt").click(function (e) {
      $(".select_box").hide('fast');
      if ($(this).next('.select_box').is(':visible')) {
          $(this).next(".select_box").hide('fast');
      } else {
          $(this).next(".select_box").fadeIn('fast');
      }
      e.stopPropagation();
   });
  $(document).click(function (e) {
      $(".select_box").hide();
  });
  $('.select_box').click(function (e) {
      e.stopPropagation();
  });
  $('#check_all,#check_entite').click(function (e) {
      $(this).siblings(':checkbox').prop('checked', this.checked);
      e.stopPropagation();
  });
});
于 2013-03-18T12:04:03.117 回答
0

我认为原因不是js,实际上是你的逻辑太复杂,你应该重新组织它。试试这个或在这里检查结果:

<script type="text/javascript">
$(document).ready(function(){

$(".bt").click(function(){
    $(".select_box").hide('fast');
    if ($(this).next('.select_box').is(':visible')){
        $(this).next(".select_box").hide('fast');
    }
    else{
        $(this).next(".select_box").fadeIn('fast');
    }
});
$(document).click(function() {
    $(".select_box").hide();
});
$(".bt,.select_box").click(function(e) {
    e.stopPropagation();  
    return false;                             
});

$('#check_all').click(function(){
    $(this).parents('div:eq(0)').find(':checkbox').attr('checked', this.checked);
      e.stopPropagation();  
    return false; 
}); 
});

于 2013-03-18T12:12:14.807 回答
0

你想用什么来完成:

$(".bt,.select_box").click(function(e) {
    e.stopPropagation();  
    return false;                             
});

?

这是一个工作版本:JSFiddle

$(document).ready(function () {

    $(".bt").click(function (e) {
        $(".select_box").hide('fast');
        if ($(this).next('.select_box').is(':visible')) {
            $(this).next(".select_box").hide('fast');
        } else {
            $(this).next(".select_box").fadeIn('fast');
        }
        return false;
    });
    $(document).click(function () {
        $(".select_box").hide();
    });

    $('.check_all').click(function () {
        var checked = ($(this).prop('checked'));
        $(this).parent('div').find(':checkbox').prop('checked', checked);
    });
});
于 2013-03-18T12:23:40.817 回答