使用jQuery UI时,我试图在#tag
输入的值发生改变时立即触发事件,但您可以看到如果用户单击页面上的内容并触发log
事件,不是一旦输入值发生变化jQuery UI自动完成更改事件不实时触发
我已经试图绑定更改事件paste
但我得到了同样的结果。
$(function() {
var availableTags = [
"ActionScript",
"AppleScript",
"Asp",
"BASIC",
"C",
"C++",
"Clojure",
"COBOL",
"ColdFusion",
"Erlang",
"Fortran",
"Groovy",
"Haskell",
"Java",
"JavaScript",
"Lisp",
"Perl",
"PHP",
"Python",
"Ruby",
"Scala",
"Scheme"
];
$("#tags").autocomplete({
source: availableTags
});
$("#tags").on('change', function(){
console.log($(this).val());
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js"></script>
<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
<div class="ui-widget">
<label for="tags">Tags: </label>
<input id="tags">
</div>
可以请你让我知道如何解决这一问题?
每jQuery的文档:**注:如不属于任何正式规范的按键事件,使用时可以跨浏览器不同,遇到的实际问题,浏览器版本和平台。** - 我发现获得真正的跨浏览器一致性的唯一方法是使用'keyup'(甚至不包括'keydown')。 –