我正在尝试使用一些html输入克隆元素。如果我在Add按钮上单击事件之前克隆元素,它只会插入一次。但是,如果我在click事件中克隆它,它会插入我需要的次数。
这是有效的:
$( document ).on( 'pwpusscformopenraw', function() {
$('.pwpus-repeat-wrapper' ).each(function() {
$(this).find('.add-emls').each(function() {
$(this).on('click', function() {
var cloned = $(this).parent().siblings( '.pwpus-sortable-ul').find('.tbcloned').clone(false);
cloned.removeClass( 'tbcloned' );
cloned.insertAfter( $(this).parent().siblings( '.pwpus-sortable-ul').find('li:last-child' ) );
console.log(cloned);
$(document).trigger('pwpusrpfo');
});
});
});
});
但是,这只能生成一次克隆的两个实例。
$( document ).on( 'pwpusscformopenraw', function() {
$('.pwpus-repeat-wrapper' ).each(function() {
var cloned = $(this).find('.tbcloned').clone(false);
$(this).find('.add-emls').each(function() {
$(this).on('click', function() {
cloned.removeClass( 'tbcloned' );
cloned.insertAfter( $(this).parent().siblings( '.pwpus-sortable-ul').find('li:last-child' ) );
console.log(cloned);
$(document).trigger('pwpusrpfo');
});
});
});
});
我需要在click事件之前克隆它,因为还有一些其他函数附加到同一个click事件,我不想在cloned元素上应用它。
我做错了什么?
答案 0 :(得分:0)
尝试以下方法:
$( document ).on( 'pwpusscformopenraw', function() {
$('.add-emls').addClass('triggered');//add a class to trigger the click event
});
$('body').on('click','.triggered',function(){
var cloned = $(this).closest('.pwpus-repeat-wrapper').find('.tbcloned').clone(false);
cloned.removeClass( 'tbcloned' );
cloned.insertAfter( $(this).parent().siblings( '.pwpus-sortable-ul').find('li:last-child' ) );
$(this).removeClass( 'tbcloned' );//to reset the "pwpusscformopenraw" event
$(document).trigger('pwpusrpfo');
});