select2,show前怎么改
select2, how to change before show
我正在使用 select2 构建我的组合。
一些元素被禁用,但我想将它们显示为粗体但需要 aria-required="false"
var data= [{
id="1",
value = "first",
disabled:true
},{
id="2",
value = "second",
disabled:false
},
];
function formatResult(node) {
if(node.disabled){
var $result = $('<span><strong>' + node.text + '</strong></span>');
} else {
var $result = $('<span>' + node.text + '</span>');
}
return $result;
}
$("#myCombo").select2({
placeholder: 'Seleccione una opción',
width: "350px",
data: data,
formatSelection: function(item) {
return item.text
},
formatResult: function(item) {
return item.text
},
templateResult: formatResult
});
};
可行,但 li :
<li class="select2-results__option" role="treeitem" aria-disabled="true">
<span style="padding-left:20px;"><strong>first</strong></span>
</li>
打开时,使用调试器,如果我执行:
$('.select2-results__option').attr('aria-disabled',false);
它按我想要的方式工作,但我无法以编程方式执行此操作,似乎不存在 beforeShow 函数,我该怎么做?
一般情况下,你可以通过超时来实现。
$("#myCombo").select2({
placeholder: 'Seleccione una opción',
width: "350px",
data: data,
formatSelection: function(item) {
return item.text
},
formatResult: function(item) {
return item.text
},
templateResult: formatResult
});
setTimeout(function(){
$('.select2-results__option').attr('aria-disabled',false);
});
我正在使用 select2 构建我的组合。
一些元素被禁用,但我想将它们显示为粗体但需要 aria-required="false"
var data= [{
id="1",
value = "first",
disabled:true
},{
id="2",
value = "second",
disabled:false
},
];
function formatResult(node) {
if(node.disabled){
var $result = $('<span><strong>' + node.text + '</strong></span>');
} else {
var $result = $('<span>' + node.text + '</span>');
}
return $result;
}
$("#myCombo").select2({
placeholder: 'Seleccione una opción',
width: "350px",
data: data,
formatSelection: function(item) {
return item.text
},
formatResult: function(item) {
return item.text
},
templateResult: formatResult
});
};
可行,但 li :
<li class="select2-results__option" role="treeitem" aria-disabled="true">
<span style="padding-left:20px;"><strong>first</strong></span>
</li>
打开时,使用调试器,如果我执行:
$('.select2-results__option').attr('aria-disabled',false);
它按我想要的方式工作,但我无法以编程方式执行此操作,似乎不存在 beforeShow 函数,我该怎么做?
一般情况下,你可以通过超时来实现。
$("#myCombo").select2({
placeholder: 'Seleccione una opción',
width: "350px",
data: data,
formatSelection: function(item) {
return item.text
},
formatResult: function(item) {
return item.text
},
templateResult: formatResult
});
setTimeout(function(){
$('.select2-results__option').attr('aria-disabled',false);
});