在我为 jquery ui 自动完成 1.9.1 的源选项定义的函数中,我想访问 jquery ui 自动完成的选项。
通过检查此函数内部的“this”,我发现我可以使用 this.options 访问选项。我想知道这是否是正确的方法,所以我不依赖内部规范?
在我为 jquery ui 自动完成 1.9.1 的源选项定义的函数中,我想访问 jquery ui 自动完成的选项。
通过检查此函数内部的“this”,我发现我可以使用 this.options 访问选项。我想知道这是否是正确的方法,所以我不依赖内部规范?
我让这个工作像这样。应该有更简单的方法,但我没有找到。
<script>
$('#element').autocomplete({
self: null,
myOption: 'test',
source: function (request, response) {
self = this;
var matcher = new RegExp($.ui.autocomplete.escapeRegex(request.term), "i");
response($('#combobox').children("option").map(function () {
var text = $(this).text();
if (this.value && (!request.term || matcher.test(text)))
return {
label: text.replace(
new RegExp(
"(?![^&;]+;)(?!<[^<>]*)(" +
$.ui.autocomplete.escapeRegex(request.term) +
")(?![^<>]*>)(?![^&;]+;)", "gi"
), "<strong>$1</strong>"),
value: text
};
}));
},
select: function (event, ui) {
console.log(self.options.myOption);
}
});
</script>
<html>
<input type="text" id="element" />
<select id="combobox">
<option value="t1">Python</option>
<option value="t2">PHP</option>
<option value="t3">ASP.NET</option>
<option value="t4">C++</option>
<option value="t5">Ruby</option>
</select>
</html>
提示在这里找到