替代jquery live可以工作

Bra*_*rth 7 jquery delegates bind live

我有这个简单的代码.http://jsfiddle.net/borth/BmEZv/ 如果您点击链接一次,它可以正常工作.如果再次单击它,则不起作用.由于在加载DOM后html被加载到html中,我尝试过.on,.bind,.delegate和.live.除了被弃用的.live之外,它们都没有用(我使用的是jquery 1.7.2).

有人可以解释为什么.live是唯一有效的功能,以及为什么其他功能不起作用(或者如果我对其他功能做错了).


$(document).ready(function(){
  $(".OpenPopup").bind('click', function(e){
      alert('test .OpenPopup');
      // do something
      return false;
  });
  $(".EditIcon").bind('click', function(){
      alert('test .EditIcon');
      // do something
      $("#ABC").html('<div class="EditIcon OpenPopup" pwidth="800" pheight="500" ptitle="EditText">click here again</div>');
  });
});


<div id="ABC"><div class="EditIcon OpenPopup" pwidth="800" pheight="500" ptitle="EditText">click here</div></div>
Run Code Online (Sandbox Code Playgroud)

小智 18

$(document).ready(function(){
        $(document.body).on('click', ".OpenPopup", function(e){
            alert('test .OpenPopup');
            // do something
            return false;
        });
        $(document.body).on('click', ".EditIcon", function(){
            alert('test .EditIcon');
            // do something
            $("#ABC").html('<div class="EditIcon OpenPopup" pwidth="800" pheight="500" ptitle="Edit Text">click here again</div>');
        });
    });
Run Code Online (Sandbox Code Playgroud)