2012-06-19 53 views
0
<!DOCTYPE HTML> 
<html> 
<head> 
    <script type="text/javascript" src="http://code.jquery.com/jquery-1.7.2.js"></script> 
    <script type="text/javascript"> 
    $("#myBtn").on("click",function(){ 
     alert('myBtn Clicked'); 
    }); 
    </script> 
</head> 
<body> 
    <button type="button" id="myBtn">Sample</button>  
</body> 
</html> 

對於上面提到的代碼,單擊事件不會觸發。我用JSFiddle工作正常。 它在委派的情況下工作正常。我用委託的代碼如下無法在API上使用jquery進行事件處理

<!DOCTYPE HTML> 
<html> 
<head> 
    <script type="text/javascript" src="http://code.jquery.com/jquery-1.7.2.js"></script> 
    <script type="text/javascript"> 
    $(document).on("click","button",function(){ 
     alert('myBtn Clicked'); 
    }); 
    </script> 
</head> 
<body> 
    <button type="button" id="myBtn">Sample</button>  
</body> 

幫助我解決這個....

+3

設置了'$(文件)的結束.ready(function(){content ...});' –

+1

請閱讀[jQuery教程](http://docs.jquery.com/Tutorials:Getting_Started_with_jQuery)。它解釋瞭如何正確使用jQuery,尤其是:*「當我們使用jQuery讀取或操作文檔對象模型(DOM)時,我們所做的幾乎所有事情都需要確保我們開始添加事件等,只要DOM準備就緒「。*它在jsFiddle中工作,因爲默認設置是運行代碼'onLoad'。 –

回答

0

儘量把它放在Initiliaze功能。也許JavaScript的jQuery的是沒有加載

$(function() { 
    $(document).on("click","button',function(){ 
      alert('myBtn Clicked'); 
     }); 

}); 
2

把你的代碼中的document.ready()

<!DOCTYPE HTML> 
<html> 
<head> 
    <script type="text/javascript" src="http://code.jquery.com/jquery-1.7.2.js"></script> 
    <script type="text/javascript"> 
    $(document).ready(function(){ 
    $("#myBtn").on("click",function(){ 
     alert('myBtn Clicked'); 
    }); 
    }); 
    </script> 
</head> 
<body> 
    <button type="button" id="myBtn">Sample</button>  
</body> 
</html> 

現在,在第二種情況下你的代碼工作,因爲文件第一次加載頁面,並安裝可進行它沒有的document.ready但當時HTML元素可能加載這樣的事件不能連接到他們

0

簡單:當您添加監聽器時,您的DOM尚未加載!確保DOM第一次加載由要麼

  • 使用ready事件
  • 移動script標籤,你的身體

$(document).ready(function(e) { 
    // add listeners here 
}); 
相關問題