我试图在select2结果项中放置一个按钮(允许用户删除项)。我设法放置了按钮,但还没有设法处理它们的click事件。不知何故,事件没有被引发。我认为这有点像select2在按钮的click事件引发之前关闭了下拉列表,但不知道如何使其工作。
这是我现在所拥有的片段。
...
formatResult: function (item) {
return item.text + "<button class='btn btn-xs btn-default pull-right select2-result-button' data-id='" + item.id + "'>×</button>";
}
...
$(document).on("click", ".select2-result-button", function (e) {
alert("clicked: " + $(this).data("id"));
e.preventDefault();
e.stopPropagation();
return false;
});
这是一个fiddle的演示,我也尝试了鼠标按下事件,但没有成功。
3条答案
按热度按时间zed5wv101#
你应该看看这个答案:stackoverflow.com/a/15637696/1127669:
select2
库防止弹出列表上的任何单击事件。但是您可以像这样重新定义
onSelect
事件:jsfiddle.net/qouo8uog/33.1zmg4dgp2#
在一天结束的时候,我决定修补select2源代码,而不是修改选项,也许这值得在github项目上进行拉取请求,但目前我没有时间准备。
在这两个onSelect实现(single和multi)中,我都把这段代码放在前面。
1szpjjfi3#
只要加上
按钮会起作用。