假设我有以下knockoutjs绑定
var optionsWithCategory = [
"Category: Person", // Category option should be disabled, or non-selectable
"Jason",
"John",
"Category: Department",
"Human Resource",
"Sales"
];
<div id="selectBox">
<select databind="options: optionsWithCategory"></select>
</div>
我可以采取哪些方法将disable="disable"
添加到文本值以options
开头的所有Category:
DOM元素。因此Person
和Department
实际上是不可选择的,但在选择框中充当分隔符。此外,select
框会动态添加到selectBox
div元素。
我提出的一种方式是:
$('#selectBox').bind('DOMNodeInserted', function (e) {
if (e.target.text != undefined && e.target.text.indexOf(':') >= 0) {
$(e.target).attr("disabled", "disabled");
}
});
但它看起来不太优雅,还有其他方法吗?
答案 0 :(得分:0)
我不确定有什么干净的方法可以做到这一点,因为它有点不常用
但是你可以用你所写的代码做类似的代码,或者你也可以创建自己的绑定处理程序来执行它。我建议使用绑定处理程序,因为它会将所有逻辑包装在一个地方。