为什么jquery .change事件不能像我期望的那样工作

时间:2013-03-03 09:25:41

标签: javascript jquery

这是我的问题:

我有一个带有两个选项的选择标签 - “Hello”和“World”

HTML

<select>
<option> Hello </option>
<option> World </option>
</select>

在IE 中,当您选择一个选项并且它成为所选选项时,蓝色突出显示将保持不变,直到您单击选择标记之外的其他位置。 (在Firefox中,它不是那样)

所以我写了一个脚本,当选择了一个选项时,会从元素中删除焦点。

脚本

$('select').change(function() {
        $(this).blur();

但仍然存在一个小问题: 如果我选择Hello然后获得Hello选项 - 焦点将保持不变并且蓝色突出显示。但如果我选择你好,那么世界选择 - 一切正常..
我读到,对于选择菜单,当选择一个选项时会发生更改事件!!!但为什么该选项必须与之前选择的选项不同才能触发更改事件。我希望你明白我的英语不太好

这里是js示例-please在IE中测试它 TEST JSFIDDLE EXAMPLE

2 个答案:

答案 0 :(得分:1)

如果您选择相同的值,该选项实际上没有更改吗?

只有在选项更改时才会触发更改事件。

答案 1 :(得分:0)

试试这个:

$(document).ready(function() {
  $('select').mouseout(function(){$(this).blur();})
});

这是一种黑客,会起作用,但不推荐,好像用户试图用键盘填充它然后它可能有点麻烦