2013-05-27 28 views
0

我有一個腳本放在我的html文檔中。我的腳本只能從控制檯工作

當我加載HTML頁面腳本不工作,但是當我把腳本放在控制檯內,然後腳本正在工作,使我想要的HTML文件的效果。

這裏是腳本,我做錯了什麼?

var maxRows = 10; 
$('.table').each(function() { 
var cTable = $(this); 
var cRows = cTable.find('tr:gt(0)'); 
var cRowCount = cRows.size(); 

if (cRowCount < maxRows) { 
    return; 
} 

cRows.each(function(i) { 
    $(this).find('td:first').text(function(j, val) { 
     return (i + 1) + " - " + val; 
    }); 
}); 

cRows.filter(':gt(' + (maxRows - 1) + ')').hide(); 


var cPrev = cTable.siblings('.prev'); 
var cNext = cTable.siblings('.next'); 

cPrev.addClass('disabled'); 

cPrev.click(function() { 
    var cFirstVisible = cRows.index(cRows.filter(':visible')); 

    if (cPrev.hasClass('disabled')) { 
     return false; 
    } 

    cRows.hide(); 
    if (cFirstVisible - maxRows - 1 > 0) { 
     cRows.filter(':lt(' + cFirstVisible + '):gt(' + (cFirstVisible - maxRows - 1) + ')').show(); 
    } else { 
     cRows.filter(':lt(' + cFirstVisible + ')').show(); 
    } 

    if (cFirstVisible - maxRows <= 0) { 
     cPrev.addClass('disabled'); 
    } 

    cNext.removeClass('disabled'); 

    return false; 
}); 

cNext.click(function() { 
    var cFirstVisible = cRows.index(cRows.filter(':visible')); 

    if (cNext.hasClass('disabled')) { 
     return false; 
    } 

    cRows.hide(); 
    cRows.filter(':lt(' + (cFirstVisible +2 * maxRows) + '):gt(' + (cFirstVisible + maxRows - 1) + ')').show(); 

    if (cFirstVisible + 2 * maxRows >= cRows.size()) { 
     cNext.addClass('disabled'); 
    } 

    cPrev.removeClass('disabled'); 

    return false; 
}); 

});

+0

你的代碼你收到任何錯誤訊息? – basilikum

回答

1

你很可能在它引用的元素存在之前運行該腳本。

確保<script>標籤後進來的頁面不是與類table或包裹整個腳本元素:

$(function(){ 

... Your entire script 

}); 

,以確保它不會執行,直到DOM就緒。

+0

謝謝你現在在工作 –

+0

@LiranTadmor不客氣:) – Paulpro

+0

我在哪裏把函數名放在你給我展示的例子中? –

2

嘗試包裹整個事情與此:

$(document).ready(function() { /* existing code */ }); 

該瀏覽器可以執行代碼之前在頁面加載,因此之前的元素存在。

0

在文檔「準備就緒」之前,不能安全地操作頁面。 jQuery爲你檢測到這種狀態。包含在 $(document).ready()中的代碼只會在頁面Document Object 模型(DOM)準備好執行JavaScript代碼時運行。在$(window).load(function(){...})內部包含代碼 將在整個頁面(圖像或iframe)(而不僅僅是DOM)準備就緒後運行。

嘗試包裹在這

$(document).ready(function() { 
    // Your code here 
}); 

The Source

相關問題