[英]Where do I put this JS code to make it work?
我實質上重新創建了制作JS所需的表部分,並在JS小提琴中放了一些工作代碼,但是當我嘗試將其添加到表部分所在的位置或其他稱為html的函數中時,似乎打破頁面...任何想法放在哪里? http://jsfiddle.net/UyHj3/13/
$("tr.clickable.subheading td").click(function() {
$(this).parents("tr.clickable.subheading").nextUntil("tr.clickable.subheading").toggle();
});
您的問題是您試圖將事件處理程序附加到DOM中不存在的元素。 在jsFiddle中,默認情況下,代碼在onload
之后運行,這意味着DOM +圖像已完全加載。
將代碼包裝在DOM ready事件中:
$(function() {
$("tr.clickable.subheading td").click(function() {
$(this).parents("tr.clickable.subheading").nextUntil("tr.clickable.subheading").toggle();
});
});
或將代碼放在<body>
標記的末尾,就像Fiddle一樣 。
但是第一種選擇被認為是更好的做法。
ready
事件文檔 :
雖然JavaScript提供了呈現頁面時執行代碼的load事件,但只有在完全接收到所有資產(例如圖像)之后,才會觸發此事件。 在大多數情況下,可以在完全構建DOM層次結構后立即運行腳本。 保證傳遞給.ready()的處理程序將在DOM准備就緒后執行,因此通常這是附加所有其他事件處理程序並運行其他jQuery代碼的最佳位置。 使用依賴CSS樣式屬性值的腳本時,在引用腳本之前,請先引用外部樣式表或嵌入樣式元素,這一點很重要。
您總是希望將事件處理程序放入document.ready函數中,例如
$(document).ready(function(){
//your code
});
您更新的小提琴: http : //jsfiddle.net/ccross59/UyHj3/15/
放入
$(document).ready(function () {
// I execute your code when the DOM is ready.
});
要么
$(window).load(function () {
// I execute your code when the entire page is loaded (including images or iframes)
});
看起來那里有一些jQuery,因此請確保您包含對jQuery庫的引用:
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js" type="text/javascript"></script>
並將您的代碼放入$(document).ready(){}中:
$(document).ready(function(){
// your code
};
應該有一個JavaScript窗格。 確保使用左側菜單上的JQuery。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.