嘿伙计们。
我正在尝试在搜索框下面添加其他HTML元素..就像用于过滤目的的复选框一样。 但添加的复选框不起作用,您无法实际检查它。我不确定,但我认为搜索框正在关注他们...我创建了这个jsFiddle,所以你们可以查看它。
$("#e1").select2();
//Inserting additional HTML elements below search... filter in my case
$(".select2-search").after("<input type='checkbox'/>");
当下拉列表打开时,您甚至无法在jsFiddle输入中写入。
我尝试在没有运气的情况下从源代码中评论各种焦点调用。
任何人都可以指出我在源代码中的正确方向是什么导致这个非停止搜索框聚焦。
答案 0 :(得分:1)
要尝试的一件事是让复选框元素阻止鼠标事件传播。这似乎阻止他们进入Select2,所以Select2无法杀死他们。
$("<input type='checkbox'/>")
.insertAfter(".select2-search")
.on('mousedown mouseup click', function(e) { e.stopPropagation(); });
答案 1 :(得分:0)
我不确定,但我认为搜索框正在关注他们
我的猜测是,这是因为Select2会杀死(停止传播并阻止默认)下拉列表中发生的大多数事件。这是因为Select2不会泄漏事件,但它也会导致无法捕获click
事件或嵌入链接等问题。
当下拉列表打开时,您甚至无法在jsFiddle输入中写入。
这是因为Select2使用一个掩码来捕获下拉列表之外的所有事件。
任何人都可以指出我在源代码中的正确方向是什么导致这个非停止搜索框聚焦。
您将要查看killEvent
的来源,因为这是Select2使用该方法杀死事件的方法。由于大多数浏览器都会侦听本机控件的click
事件,因此您可能希望删除this killEvent
for dropdown clicks。