jquery
2013-05-19 75 views 0 likes 
0

我有一個js腳本,可以在jsFiddle中工作,但在實際的網站上無法工作,我無法想象任何其他工作。jQuery在jsFiddle上無法在wesite上工作

這裏是fiddle

這裏是website

我需要一個複選框,點擊時會依次檢查了一些其他的複選框。

$("form input[id='selectall']").click(function() { 
    var inputs = $("form input[class='produse4export']"); 
    for (var i = 0; i < inputs.length; i++) { 
     if (this.checked) { 
      inputs[i].checked = true; 
      checkme(); 
     } else { 
      inputs[i].checked = false; 
      uncheckme(); 
     } 
    } 
}); 

當這些複選框一次被選中時,它們必須啓用其他複選框。當它們未被選中時,其餘的複選框必須再次被禁用並且未被選中(如果它們被選中)。

有點難以解釋,但小提琴和網頁都很容易閱讀。爲什麼它不按預期工作?

回答

1

在小提琴中,您在頁面加載時綁定事件。在您的頁面上,您正在嘗試在解析頁面時進行此操作。

在你頁面,事件處理程序綁定代碼更改爲:

$(document).ready(function() { 
    $("form input[id='selectall']").click(function() { 
     ... 
    }); 
}); 
3

您需要將script塊移動到下面作用的元素。

它的工作原理上的jsfiddle的原因是的jsfiddle有真正腦死亡奇怪默認行爲,也就是把所有的腳本在從window#load事件調用的函數。 (您可以在左側看到它,它是從頂部開始的第二個選擇框。)因此,在jsFiddle中,只有在解析了所有HTML並且存在元素後,腳本代碼纔會運行。但是在您的網站上,您將代碼放在以上,因此當您嘗試去獲取它們時,它們還不存在。

該放哪些東西的口頭禪是:「樣式,內容,腳本。」在所有內容之後,將樣式表(內聯和鏈接)放在文檔的頂部,正文中的內容(顯然)以及底部的腳本。這樣,當腳本運行時,元素就存在於DOM中。

參見:

+0

是的,腦死亡,但感謝你的時間不過 – flish

+0

@flish:不用擔心。 (你明白我是在談論jsFiddle的默認設置,而不是*你使用jsFiddle。) –

+0

這不是真正的腦殘,你可以控制,在什麼時候包括腳本。 – Arnthor

相關問題