克隆插入仅插入一次

时间:2016-11-04 06:26:44

标签: jquery

我正在尝试使用一些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元素上应用它。

我做错了什么?

1 个答案:

答案 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');
    });