2013-02-16 66 views
0

我有这样的代码。选择/取消单击处理仅触发第一次

 var check = true; 
     $('#selectall').click(function() { 
      $("form input[type='checkbox']").attr ("checked", true); 
      if (check){ 
       check = false; 
       $('#checktodos').attr("src", "check_off.png"); 
      } 
      else { 
       $('#checktodos').attr("src", "check_on.png"); 
       $("form input[type='checkbox']").attr ("checked", false); 
      } 
     }); 

当我点击ID =“selectall”按钮时,所有的复选框被选中,并且图像按钮改变。然后再次点击同一个按钮,并且所有的checkbo都未被选中,并且图像再次变为第一个。

但我不能做更多的时候,我就在按钮第三次点击,并且图像按钮不会改变,没有复选框被选中。我想这样做无限次。

+3

显示相关的HTML或把它放在小提琴 – 2013-02-16 18:37:49

+1

那是因为你不改变'check'回TRUE;在else块。 – JJJ 2013-02-16 18:39:05

+0

如果我这样做只是图像按钮的变化,在第三次点击,没有更多的检查/未选中的复选框 – frankie4 2013-02-16 18:51:57

回答

0

尝试添加以下到您else条件:

check = true; 

你设定VAR检查,以虚假的,但从来没有回真。

UPDATE:

的jsfiddle例如:http://jsfiddle.net/4ZzUc/

你似乎是使用一个版本的jQuery> 1.5,所以你需要使用.prop( “选中”,真正的);而不是.attr(“checked”,true);

+0

与您的代码,只图像按钮的变化,在第三次点击,没有更多的检查/未选中的复选框 – frankie4 2013-02-16 18:44:50

+0

@ frankie4更新上面的答案,包括一个例子供您尝试。它现在应该工作。 – 2013-02-16 19:13:17

+0

终于有效!非常感谢你 :) – frankie4 2013-02-16 19:28:38

相关问题