2015-06-21 27 views
1

当我点击按钮2时,什么也没有发生。它如何像我写的那样运行。我的代码:无法对jquery加载的元素应用jquery

<input type="button" id="btn1" value="Button 1"><br><br> 
<div id="display"></div> 
<script> 
    $(document).ready(function(){ 
     $("#btn1").click(function(){ 
      $("#display").append('<input type="button" id="btn2" value="Button 2">'); 
     }); 
     $("#btn2").click(function(){ 
      alert("Message!"); 
     }); 
    }); 
</script> 

回答

2

您需要使用事件代表团动态创建的元素,像这样:

$("body").on("click", "#btn2", function(){ 
    alert("Message!"); 
}); 

FIDDLE

0

您需要使用事件委托添加事件侦听器可以动态创建的元素。

$(document).ready(function(){ 
 
     $("#btn1").click(function(){ 
 
      $("#display").append('<input type="button" id="btn2" value="Button 2">'); 
 
     }); 
 
     $(document).on('click','#btn2',function(){ // document or any container of btn2 
 
      alert("Message!"); 
 
     }); 
 
    });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<input type="button" id="btn1" value="Button 1"><br><br> 
 
<div id="display"></div>

+0

如果我的代码是:? 的$(document)。在( '点击', 'A',函数(){$ ( “身体”)删除() ; }); 我想当前我选择的标签将被删除。我该怎么做? –

+0

''(document).on('click','a',function(){$(this).remove();});'当心'a''您正在选择所有'a's。你应该使用一些类或ID。 – vinayakj