2013-02-16 65 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

相關問題