stopPropagation 不适用于 IE 中的 select2 选项
stopPropagation is not working for select2 options in IE
我正在尝试在 select2 选项列表中添加 link。我想绑定一个事件。它在 chrome 和 firefox 中运行良好。但它在 IE(9/10/11) 中不起作用。我尝试了所有替代方案,cancelbubble,returnValue 但是 none 正在工作。
当我用 class categoryDelete
单击 hyperlink 时,它会将事件传播到 li 选项,甚至不在 IE 中执行我的自定义 mouseup 事件。
我也在堆栈溢出中尝试了 this answer。我使用 templateResult
将 link 添加到 select2 选项。在上面的 link 中,他们使用了 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");
});
您的 .categoryDelete
是动态生成的,并且有不同的方法可以将事件添加到动态生成的元素,如下所示:
$(document).on('mouseup','.categoryDelete',function (event) {
event = event || window.event;
event.preventDefault();
event.stopPropagation();
alert("clicked delete link");
});
我正在尝试在 select2 选项列表中添加 link。我想绑定一个事件。它在 chrome 和 firefox 中运行良好。但它在 IE(9/10/11) 中不起作用。我尝试了所有替代方案,cancelbubble,returnValue 但是 none 正在工作。
当我用 class categoryDelete
单击 hyperlink 时,它会将事件传播到 li 选项,甚至不在 IE 中执行我的自定义 mouseup 事件。
我也在堆栈溢出中尝试了 this answer。我使用 templateResult
将 link 添加到 select2 选项。在上面的 link 中,他们使用了 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");
});
您的 .categoryDelete
是动态生成的,并且有不同的方法可以将事件添加到动态生成的元素,如下所示:
$(document).on('mouseup','.categoryDelete',function (event) {
event = event || window.event;
event.preventDefault();
event.stopPropagation();
alert("clicked delete link");
});