jQuery on()而不是live()不起作用

时间:2013-08-15 10:26:55

标签: jquery

由于.live()已被弃用,我使用的是.on()而不是.live(),但是它没有正常工作,如果我错了就请耐心等待,提前谢谢。

下面是一个简单的测试html,我的预期行为是只有当我点击按钮时事件才会触发,但事实上只要我点击就会触发事件。

<html lang="en">
<head>
  <title>demo</title>
  <script src="http://code.jquery.com/jquery-1.9.1.js"></script>
</head>
<body>
<div id="wrapper">
    <p>Hello World!</p>
    <p>Hello World!</p>
    <p>Hello World!</p>
    <p>Hello World!</p>
    <button id="btn">Click</button>
    <p>Hello World!</p>
    <p>Hello World!</p>
    <p>Hello World!</p>
    <p>Hello World!</p>
    <p>Hello World!</p>
</div>
<script>

$(document).on("click", $("#btn"), function(){ 

    document.title += "fire!";

});

</script>

</body>
</html>

2 个答案:

答案 0 :(得分:5)

on()函数的第二个参数应该是selector而不是jQuery object

$(document).on("click", "#btn", function(){ 
    document.title += "fire!";
});

答案 1 :(得分:0)

FIDDLE

将此作为您的脚本

$(function(){
   $('#btn').on('click', function(){
      alert('You clicked a button.');
   });
});