2013-10-07 46 views
0

使用以下代碼: - 當DOM準備就緒時,是否存在假設爲警報消息「hi」?DOM Ready的預期警報('hi')?

here is the fiddle

HTML: -

//including jquery 
<script data-require="[email protected]" 
    data-semver="1.6.4" 
    src="//cdnjs.cloudflare.com/ajax/libs/jquery/1.6.4/jquery.min.js"> 
</script> 

<script> 
    $(document).ready(function(){ 
    $('.popbox').popbox(); // doesn't this execute the javascript function '$.fn.popbox' ? 
    }); 
</script> 



    <div class='popbox'> hi </div> 

的JavaScript包括: -

(function(){ 
    $.fn.popbox = function(){  
    alert('hi'); 
    } 
}).call(this) 
+1

它大概加載在格蘭錯誤的順序。 http://jsfiddle.net/tzjW5/5/ –

回答

1

是的,但在jsfiddle上,您將您的javascript設置爲運行onload這是domReady之後。

這是working version

注:我把它添加到頭部

0

這取決於你包括在 「包含的JavaScript」 的一部分。在你的JSFiddle上,它在 document.ready之後運行,所以它失敗了(檢查你的控制檯輸出)。

這基本上是因爲document.ready是DOMContentLoaded事件的快捷方式。它在window.onload事件之前運行,這是您的小提琴在JavaScript面板上添加代碼的地方。

1

看起來您的文檔準備在所有不叫。也許jquery沒有加載?檢查錯誤控制檯(按F12或控制+ SHIFT + K在Firefox)

你可以試試這個:

//including jquery 
<script data-require="[email protected]" 
    data-semver="1.6.4" 
    src="//cdnjs.cloudflare.com/ajax/libs/jquery/1.6.4/jquery.min.js"> 
</script> 
<div class='popbox'> hi </div> 
<script> 
    (function(){ 
    $.fn.popbox = function(){  
     alert('hi'); 
    } 
    }).call(this) 
    $('.popbox').popbox(); 
</script>