如何解决.stopPropagation() 放置在输入上,不允许输入输入文本
我正在尝试向表中的某些列添加列搜索(使用数据表)。我将搜索的输入字段添加到表格的每个标题单元格中。 Datatables 使得无论何时单击标题它都会更改排序方法,因此我插入了 .stopPropagation
附加到输入字段的点击事件,以便在标题的输入部分不更改列的排序单击单元格。唯一的问题是 .stopPropagation
正在工作并且不影响排序,但是当单击输入字段时,它不允许我向该字段添加文本。我不确定我做错了什么。下面是代码片段(它被放置在用于在我们网站上创建每个表的代码中):
var columnsearch = $(this).find('th');
columnsearch.each(function () {
var title = $(this).text();
$(this).append( '<input type="search" placeholder="Search '+title+'" />' );
})
var textbox = $(this).find('input')
textbox.click(function (event) {
event.stopPropagation();
})
解决方法
在进行了一些挖掘之后,我通过使用 Chrome 检查器的事件侦听器部分发现,我们在数据表上启用的一个功能 colReorder,用于重新排列列,干扰了输入字段的功能,并具有冲突mousedown
事件。我补充说:
textbox.mousedown(function(event){
event.stopPropagation();
})
到列搜索 JS 部分并解决了问题。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。