3

我尝试将事件 jQuery 事件侦听器映射click(function(){//doStuff})<option>元素,但是在单击/聚焦时,IE 不执行我的函数。

在 FF 和 Chrome 中,它可以完美运行。在 IE10 中,点击选项不起作用;既不是 HTML 元素onClick="doFunction()",也不是on.('click',...)事件。

这是jsFiddle

<select id="someId" name="someName" size="10" multiple="yes">
<option value="ALL">--All--</option>
<option value="X1">X1</option>
<option value="X2">X2</option>
<option value="X3">X3</option>
<option value="X4">X4</option>
<option value="X5">X5</option>
<option value="X6">X6</option>
<option value="X7">X7</option>
<option value="X8">X8</option>
<option value="X9">X9</option>
</select>


$(document).ready(function () {
    $('#someId option[value="ALL"]').click(function () {
        $('select option').attr('selected', true);
        $('select option[value="ALL"]').eq(0).attr('selected', false);
    });
});
4

1 回答 1

4

维利亚姆,恐怕我有坏消息。IE10 不会真正为选项触发“单击”事件,而是仅为“选择”触发它。所以你可以做的是把“点击”事件处理程序放在选择上,跟踪选定的值并采取行动。

演示

$('#someId').click(function () {
    if ($("#someId option:selected").eq(0).val() === 'ALL') {
        $('select option').prop('selected', true);
        $('select option[value="ALL"]').eq(0).prop('selected', false);
    }
});
于 2013-07-01T14:40:51.563 回答