Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/389.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 添加委派后未触发事件_Javascript_Jquery_Events_Delegates - Fatal编程技术网

Javascript 添加委派后未触发事件

Javascript 添加委派后未触发事件,javascript,jquery,events,delegates,Javascript,Jquery,Events,Delegates,我正在使用提供一个可搜索列表。我使用下面的代码向现有表中添加了另一行 $('.add-package').unbind("click").on("click", function(){ var packageName = $('#container-search').val(); var newRowContent = '<tr>'+ '<td>'+ '<

我正在使用提供一个可搜索列表。我使用下面的代码向现有表中添加了另一行

$('.add-package').unbind("click").on("click", function(){
            var packageName = $('#container-search').val();
            var newRowContent = '<tr>'+
                '<td>'+
                '<div class="row row-padding">'+
                '<div class="col-xs-4">'+packageName+'</div>'+
                '</div>'+
                '</td>'+
                '<td><button>delete</button></td>'+
                '</tr>';
            $("[id^=searchable-container] > table > tbody").append(newRowContent);
            $('#container-search').val(null);
            $('#container-search').keyup();
        });
因为上面的代码只适用于现有的列表项(或表行),所以我修改了下面的代码以添加委派

 this.$search.on( 'change keyup', 'tbody tr' ,function() {
                    that.search( $( this ).val() );

                    that.updateStriping();
                });
无论如何,在添加委派选择器后,此代码将不会激发,搜索将不起作用。我做错了什么

更新


我可以在这里展示这个问题的一个最小版本。删除
.laki
,然后运行示例。它将触发单击事件。但是在添加
.laki
以添加委派之后,单击事件将不会触发。

看起来这个插件在页面加载时只存储元素。我想当您在中添加新行时,您只需重新初始化插件。@haxtbh:可能吧。无论如何,当我通过将选择器添加到on click事件(用于将元素添加到列表中)进行委托时,click事件也不会起作用。除非您确实需要,否则永远不建议更改插件源代码。您所做的更改可能会导致插件中其他地方出现问题,这也可能导致js错误,导致其他脚本停止working@haxtbh当前位置但这是一个我们需要解决的问题。对吗?授权并不像你所拥有的那样有效。我已经更新了小提琴来展示它是如何工作的-
 this.$search.on( 'change keyup', 'tbody tr' ,function() {
                    that.search( $( this ).val() );

                    that.updateStriping();
                });