Javascript 需要检测jQuery是在普通组合框还是多选组合框中触发的
我有一些jQuery代码,它允许我在一个multiselect组合框中选择多个条目,而无需按下Ctrl键 这可以工作,但会干扰正常的选择框,现在不能用鼠标更改该框 原始jQuery代码是:Javascript 需要检测jQuery是在普通组合框还是多选组合框中触发的,javascript,jquery,multi-select,Javascript,Jquery,Multi Select,我有一些jQuery代码,它允许我在一个multiselect组合框中选择多个条目,而无需按下Ctrl键 这可以工作,但会干扰正常的选择框,现在不能用鼠标更改该框 原始jQuery代码是: (function ($) { $(document).ready(function () { $("option").mousedown(function(e) { this.selected = ! this.selected; e.preventDefault();
(function ($) {
$(document).ready(function () {
$("option").mousedown(function(e) {
this.selected = ! this.selected;
e.preventDefault();
return false;
});
});
})(jQuery);
当然,$(“option”)选择器也适用于普通的选择框,这就是它失败的原因
我试图检测该事件是否由具有“multiple”属性的选择框触发,但无法确定如何触发。以下原因不起作用,其中一个原因是事件是由选项触发的,而不是由选择按钮触发的:
(function ($) {
$(document).ready(function () {
$("option").mousedown(function(e) {
if($(this).attr('multiple','multiple')) {
this.selected = ! this.selected;
e.preventDefault();
return false;
}
else {
return true;
}
});
});
})(jQuery);
你知道怎么做吗
啊,我不想包括multiselect的ID,因为在我的现实世界中,另一个multiselect也使用相同的代码
这是一把小提琴:
为要应用此行为的所有multiselect元素提供一个新的CSS类——可能是
自定义multiselect
然后,您可以在您拥有的代码中使用复合选择器,如。自定义多选选项
(function ($) {
$(document).ready(function () {
$(".custom-multiselect option").mousedown(function(e) {
this.selected = ! this.selected;
e.preventDefault();
return false;
});
});
})(jQuery);
为要应用此行为的所有multiselect元素提供一个新的CSS类——可能是
自定义multiselect
然后,您可以在您拥有的代码中使用复合选择器,如。自定义多选选项
(function ($) {
$(document).ready(function () {
$(".custom-multiselect option").mousedown(function(e) {
this.selected = ! this.selected;
e.preventDefault();
return false;
});
});
})(jQuery);
您可以使用此选择器以每个多选的选项为目标:
$('select[multiple]option')
此选择器针对存在
多个属性的
中出现的每个
。您可以使用此选择器针对每个多选的选项:$('select[multiple]option')
此选择器针对存在多个属性的
中出现的每个
。如何像这样针对每个多重选择中的选项:$('select[multiple]option')
是的,太好了,这很有效!谢谢为什么不发布一个答案呢?在每一个多选选项中定位选项怎么样:$('select[multiple]option')
是的,太好了,这很有效!谢谢为什么不发布一个答案呢?我最终使用了这个选项,因为它在我的情况下更容易,并且自动应用于所有的多选组合框。我最终使用了这个选项,因为它在我的情况下更容易,并且自动应用于所有的多选组合框。