簡體   English   中英

$ {document).ready不能替換在頁面底部聲明的js,但是我需要在腳本頂部

[英]$(document).ready can't replace js declared at bottom of the page, but I need to have the script at the top

我有基於JQuery的標簽導航,只有將其放置在菜單的html之后,該標簽導航才有效。 如果它也放在末尾,它會起作用,但是當我將相同的腳本放在$(document).ready ath頂部時,它就會中斷。

我認為這(位於頁面頂部):

<script type="text/javascript">
$(document).ready(function(){
    mouseovertabsmenu.init("mytabsmenu", "mysubmenuarea", true);
});
</script>

將與此相同:

    <script type="text/javascript">
        mouseovertabsmenu.init("mytabsmenu", "mysubmenuarea", true);
    </script>
</html>

它位於頁面底部並可以使用。 我如何能夠將函數放在頂部,甚至可以將其包含在單獨的文件中?

我有這個問題,並且在jquery include鏈接之后在頭中使用過:

$(document).ready(myfunction());

由於未加載對象,此操作失敗。 我應該將調用包裝在一個函數中:

$(document).ready(function () {
    myfunction();
});

僅在正確加載文檔后,此功能才能按預期工作。

建議將腳本放置在頁面末尾的原因是,在嘗試訪問HTML元素之前,會將HTML元素加載到頁面上。

無論將代碼放置在何處,最好都包裝在DOM ready事件中,該事件可以確保在嘗試訪問頁面中的元素之前正確加載了完整的HTML文檔。

也許在你的情況下

 <script type="text/javascript">
        mouseovertabsmenu.init("mytabsmenu", "mysubmenuarea", true);
    </script>

未封裝在DOM中時似乎工作正常,因為該函數的作用域被DOM准備中了,因此無法訪問該函數

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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