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 它工作正常。在委托的情况下它工作正常。我用于委托的代码如下

<!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>

帮我解决这个问题......

4

4 回答 4

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 元素,因此无法将事件附加到它们

于 2012-06-19T11:41:48.340 回答
2

阅读http://docs.jquery.com/How_jQuery_Works

所以对你来说,这将是:

 $(document).ready(function(){
     $("#myBtn").on("click",function(){
        alert('myBtn Clicked');
     });
 });
于 2012-06-19T11:42:22.297 回答
0

试着把它放在初始化功能上。也许没有加载jquery的javascript

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

});
于 2012-06-19T11:41:21.147 回答
0

简单:当您添加侦听器时,您的 DOM 尚未加载!确保首先加载 DOM

  • 使用ready事件
  • 将脚本标签移动到正文的末尾

$( document ).ready(function(e) {
    // add listeners here
});
于 2012-06-19T11:42:41.080 回答