【发布时间】:2012-04-04 14:22:47
【问题描述】:
我有一个 jquery_ui 自动完成功能。当我单击 Firefox 中的选择时,我的代码按预期运行。当我在 IE8 中运行它时,有些东西正在清除输入框中的选择(在我的所有代码运行之后)。
我无法识别清除字段的代码 - 我正在单步执行代码,但它发生在不同的时间点 - 我正在执行很多超时,所以可能是其中之一。
我想我希望有人以前遇到过这种情况..
更新
好的,我已经设法进一步追查了这个问题。这是我附加到实际删除文本的焦点事件的代码。我的问题似乎与 ff 和 ie 之间触发事件的顺序不同有关
我在 jsfiddle 上提供了一个演示 - http://jsfiddle.net/aidanewen/nKyLu/
我在下面包含了我的代码 -
<script>
$(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,
select: function(event, ui) {
$('#output').val(ui.item.label);
}
}).focus(function(e) {
$(this).val("");
});
});
</script>
<div id="content_padding">
<div class="ui-widget">
<label for="tags">Tags: </label>
<input id="tags"/>
<label for="output">Output: </label>
<input id="output"/>
</div>
</div>
【问题讨论】:
-
您将不得不分享有问题的代码。此外,在 Jsfiddle.net 这样的网站上展示该问题的演示也不会受到影响。
-
谢谢安德鲁。我的问题是,我无法识别有问题的代码。我还没有设法用代码的子集复制这个错误,我不能把所有的东西都放到网上。对不起,这真的是一个愚蠢的问题。当我找到更多信息时,我会发布更多信息。
-
好的,我已经添加了更多信息。
-
就是这样 - 谢谢安德鲁。它是上述的副本(我被标题抛出 - JQuery UI 在所有浏览器中触发焦点两次)。解决方案是在我的焦点事件中添加 return false。
标签: jquery-ui events internet-explorer-8 autocomplete focus