2011-04-22 42 views
0

我開始使用Flask,並且我在使用jQuery和(我認爲)Flask的模板系統時遇到了一些問題。我想要做的事情非常簡單:在jQuery庫之後,我在佈局主模板layout.html中包含了一個behavior.js腳本。其內容是:如何更改此代碼以使其工作?

jQuery(document).ready(function() { 
    var events = $("#fake_grid td"); 
    while(events.length > 0) { 
     $("#the_grid").append($("<tr/>").append(events.slice(0, 3))); 
    } 
    $("#fake_grid").remove(); 
}); 

當我嘗試執行此,我的瀏覽器崩潰,我不能弄明白爲什麼以及如何解決它。我一直在考慮jQuery沒有正確加載或加載後我的腳本,但我已經與FireBug檢查,在這件事情的一切工作正常。我試過用alert()代替所有的代碼,並且工作得很好。我試過用幾種不同的方法將我的.js包含在子模板index.html中,但事實並非如此。也許這是文件準備好的事情。

如果是別的,我無法看到它,這讓我非常焦慮。那麼,對此有何建議?我做錯了什麼?提前致謝。

+0

如果你的瀏覽器崩潰這是無關瓶/神社但純JS的事情。我猜你的代碼不知何故會導致無限循環。 – ThiefMaster 2011-04-22 16:42:54

回答

1
jQuery(document).ready(function() { 
    var events = $("#fake_grid td"); 
    while(events.length > 0) { 
     $("#the_grid").append($("<tr/>").append(events.slice(0, 3))); 
    } 
    $("#fake_grid").remove(); 
}); 

.slice沒有破壞性。它會返回一個新的集合,刪除那些集合。

這意味着您的循環會永久運行,因爲.length永遠不會打零。

這應該工作,雖然

jQuery(document).ready(function() { 
    $("#fake_grid td").each(function(i, val) { 
     $("#the_grid").append($("<tr></tr>").append(this)); 
    }); 
    $("#fake_grid").remove(); 
}); 
+0

這工作完美。謝謝! – 2011-04-22 17:08:10

相關問題