簡體   English   中英

我在哪里放置此JS代碼以使其正常工作?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM