2013-02-22 56 views
2

上的按鈕點擊我顯示一條警告消息。以下是我正在使用的代碼。爲什麼.bind()不能在.ready()函數之外工作?

<script type="text/javascript"> 
// $(document).ready(function(){ 
    $("#clickHere").bind("click",function(){ 
     alert('clicked'); 
    }); 
//}); 
</script> 

作爲。就緒()行註釋掉,當我點擊按鈕的警告消息不拋出,但如果我取消這些線路的警報被拋出。不應該在兩種情況下都顯示警報消息,因爲我已經在「點擊」事件上添加了對按鈕的綁定。

+0

問題:是''之前或''

6

因爲在JavaScript的塊進行解析,時,DOM還沒有準備好,因此你引用的元素還不存在。

1

不除非按鈕已經在DOM創建。如果你的代碼在頁面的頭部,這不會發生,但如果它是在關閉的body標籤之前,那就沒問題了。

0

在一個非常鬆散的感覺,想起$(「文件」)。就緒(),你會覺得在其他編程語言中的main()方法的方式相同。

1

要實現在DOM尚未準備好解析時爲元素設置事件處理函數的功能,我相信您可以使用'on'方法,您可以在其中「附加一個或多個事件的事件處理函數現在和將來的要素「。

http://api.jquery.com/on/

相關問題