2016-10-22 53 views
0

我想在Wordpress網站上調試一個奇怪的行爲:ready第一次出現的代碼似乎沒有發生。由於安裝了幾個插件,我看到這個代碼:jQuery準備的兩個定義

<script type="text/javascript"> 
jQuery(document).ready(function(){ (function() { ... })();}); 
</script> 

後來的後來,幾乎在頁面結束時,我看到:

<script type="text/javascript"> 
jQuery(document).on('ready post-load', easy_fancybox_handler); 
</script> 

難道一個定義或「準備」覆蓋其他或者兩種行爲都會發生?

+2

什麼是「奇怪的行爲」? –

+0

不應該有任何問題,除了可能第一,因爲準備就緒... – Ultrazz008

+0

@Loading ..:我添加了第一次準備好內部的代碼似乎不會發生' – Basj

回答

1

作爲documented

當多個功能通過連續調用添加到該方法中,他們運行當DOM在它們被添加的順序準備。

因此設置一個ready處理程序兩次都沒問題。

但是:

  • 第一個缺少尾隨}),應該是一個語法錯誤(這可能是爲什麼它不執行)。
  • 第二個使用過載jQuery(document).on('ready'),其被棄用:

    還有$(document).on("ready", handler),棄用jQuery的1.8和3.0的jQuery除去。請注意,如果在附加此事件之前DOM已準備就緒,則不會執行該處理程序。

+0

@Basj然後它應該工作 - 它在小提琴確實。你在引用jquery文件後調用jQuery,並且在控制檯中沒有任何錯誤。 – GSerg