将现有事件处理程序复制到新附加的div

时间:2013-09-19 21:43:34

标签: javascript jquery

我想在点击'.new'元素时创建新元素,我的jQuery工作但新创建的元素中的按钮'.new'不可点击,并且无法创建下一个元素。我该如何解决呢? 我想我不能只使用.copy(true),因为元素不完全相同 - 不会复制h2。

<div class="step">
    <h2>Some text we don't want to copy</h2>
      <div class="new"><i class="icon-plus"></i></div>
</div>

<div class="step">
    <h2>Some text we don't want to copy</h2>
      <div class="new"><i class="icon-plus"></i></div>
</div>

<div class="step">
    <h2>Some text we don't want to copy</h2>
      <div class="new"><i class="icon-plus"></i></div>
</div>

这是我的jQuery,它没有将函数传递给.new元素:

$('.new').click(function(){
      var newSlideDiv = $('<div class="step slide"><h2>New Step</h2>
      <div class="new"><i class="icon-plus"></i></div>
      </div>');
      $(this).parent().after(newSlideDiv);        
});

1 个答案:

答案 0 :(得分:1)

委派的事件处理程序:

$(document).on('click', '.new', function(){
      var newSlideDiv = $('<div class="step slide"><h2>New Step</h2>
      <div class="new"><i class="icon-plus"></i></div>
      </div>');
      $(this).parent().after(newSlideDiv);        
});