添加委派后事件未触发

时间:2016-02-17 12:43:06

标签: javascript jquery events delegates

我正在使用jquery searchable plugin来提供可搜索的列表。我已使用下面的代码

向现有表添加了另一行
$('.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();
        });

添加其他行后,我输入时无法搜索。我检查了searchable.js中的代码,发现当我在搜索字段上输入时会触发下面的代码。

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

                that.updateStriping();
            });

由于上述代码仅适用于现有列表项(或表行),因此我更改了以下代码以添加委派

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

                    that.updateStriping();
                });

无论如何,在添加了委托选择器后,此代码将不会触发,搜索将无效。我在这里做错了什么?

更新

我可以在此jsfiddle中显示此问题的最小版本。删除.laki并运行示例。它将触发click事件。但是在添加.laki添加委派后,单击事件将不会触发。

0 个答案:

没有答案