下划线模板动态删除行jQuery

时间:2019-03-05 作者:alpha.romeo

我有此下划线模板用于添加和删除行:

<#
  jQuery( document ).ready( function() {
   jQuery( \'.add-ingr\' ).click( function() {
    jQuery( \'#re-ingr .ingr\' ).append( \'<div><input 
     type="text" name="ingr[]" value=""/><a href="#" 
     class="remove_field" style="margin-left:10px;">Remove</a><div>\');
       });
    jQuery( \'.remove_field\' ).on("click", function(e){ 
      e.preventDefault(); jQuery(this).parent(\'div\').remove();
       });
      });
        #>
添加行和删除链接起作用,它生成良好的html输出:

   <div><input type="text" name="ingredients[]" value=""><a href="#" 
   class="remove_field" style="margin-left:10px;">Remove</a><div></div> 
   </div>
但不是删除,当我点击删除超链接时什么也没有发生任何想法请

2 个回复
最合适的回答,由SO网友:RiddleMeThis 整理而成

这与WP无关,但不起作用,因为您正在尝试向动态创建的元素添加事件。

代替

jQuery( \'.remove_field\' ).on("click", function(e){ 
    e.preventDefault(); jQuery(this).parent(\'div\').remove();
});
使用

jQuery( \'body\' ).on("click", \'.remove_field\', function(e){ 
    e.preventDefault(); jQuery(this).parent(\'div\').remove();
});
你可以read more about your issue here.

SO网友:mrben522

创建侦听器时,您试图将该事件绑定到的div不存在。您需要使用jQueryevent delegation 为了这个。像这样:

jQuery( \'body\' ).on("click", \'.remove_field\', function(e){
    e.preventDefault(); jQuery(this).parent(\'div\').remove();
});

相关推荐

Reset counter with jQuery

在WordPress上,我用下拉菜单在帖子类别之间切换,并有一个“加载更多”按钮,将更多帖子加载到所选类别中。每次按下按钮,都会更新一个变量,因此WordPress知道是否加载该类别中的第2、3、4部分帖子。但是,当下拉列表发生更改时,计数器应该重置,我不知道怎么做。为了简化,如果您有:<select id=\"selection\"> <option value=\"foo\"></option> <option value=\"bar\