如果我在應用了事件後使用.clone()
克隆了一段文檔,那麼如何獲得這些事件的所有都會返回克隆的元素將克隆的元素重新注入文檔?jQuery.clone()失去附加的事件處理程序
<div class="row">
<div class="col-lg-3">Something <span class="glyphicon glyphicon-remove-circle text-danger pull-right"></div>
<div class="col-lg-3">Something else <span class="glyphicon glyphicon-remove-circle text-danger pull-right"></div>
</div>
<script type="text/javascript">
$('.row').delegate('.glyphicon-remove-circle', 'click', function() {
$(this).parent().remove();
});
$reset = $('.row').clone();
</script>
<button onclick="$('.row').replaceWith($reset)">Reset</button>
這裏是它的一個fiddle:
我所有的附加事件處理程序,當我做到這一點都將丟失。
http://api.jquery.com/clone/#clone-withDataAndEvents – 2014-09-05 21:28:17
正如Kevin B所說;閱讀文檔。一個簡單的額外參數將解決您的問題。 – 2014-09-05 21:28:57
@Kevin B:使用委託事件,但不附加到不變的祖先,是真正的問題。甚至不需要深入克隆事件。 – 2014-09-05 21:44:26