【发布时间】:2015-08-12 11:02:25
【问题描述】:
我正在尝试在 select2 选项列表中添加一个链接。我想绑定一个事件。它在 chrome 和 firefox 中运行良好。但它在 IE (9/10/11) 中不起作用。我尝试了所有替代方案,cancelbubble,returnValue 但没有一个有效。
当我单击带有categoryDelete 类的超链接时,它会将事件传播到 li 选项,甚至没有在 IE 中执行我的自定义 mouseup 事件。
我还在堆栈溢出中尝试了this answer。我使用 templateResult 将链接添加到 select2 选项。在上面的链接中,他们使用了formatResult。有什么区别吗?
这是我的代码。
$("#ContentPlaceHolder1_tags").select2({
dropdownParent: "#dropdownParent",
placeholder: "Select category",
templateResult: function (item) { return '<a href="javascript:;" class="categoryDelete"></a>' + item.text },
escapeMarkup: function(m) { return m },
allowClear: true,
tags: true,
closeOnSelect: false
});
// adding event for link inside select2 options li
$(".categoryDelete").mouseup(function (event) {
event = event || window.event;
event.preventDefault();
event.stopPropagation();
alert("clicked delete link");
});
【问题讨论】:
-
试试
stopImmediatePropagation() -
您也可以在您的情况下将
return false;用于preventDefault()和stopPropagation() -
我也用过
stopImmediatePropagation(),但没用。问题是,它甚至没有触发 IE 中的自定义事件。我什至实现了$.when().done(),以防事件在 select2 初始化之前绑定。出了点问题,我没找到。
标签: jquery jquery-select2