2012-01-31 62 views
0

防止我想ENLIGHT一个选择及其TD容器当我点击这样的:捕获了在IE上一个SELECT click事件从选择

$("#fordelegation").on("click", "td", function (evt) { 
    $(".ui-state-focus").removeClass("ui-state-focus"); 
    $(this).addClass("ui-state-focus"); 
    $(evt.target).addClass("ui-state-focus"); 
}); 

您可以测试它在这个小提琴: http://jsfiddle.net/sinsedrix/9Sudt/

随着IE,我得到一个奇怪的行为,我无法再选择一个选项。 有些人说,他们没有得到这个伎俩所以这里的行为视频:

的问题是:我应该在哪里挖修复不良行为?

我真的卡住这一招:(所以每一个想法是值得欢迎的。

+0

下拉在视频空默认值但不是在jsfiddle中。该代码中缺少该缺省值还是由浏览器添加了缺省值?另外,你使用的是什么版本的IE? – Niklas 2012-01-31 10:39:15

+0

小提琴在IE8中工作的很好。你真正的代码是做其他事情吗?就像旁边一样,请注意,单击设置选择是不够的,因为用户可能使用键盘在字段之间选择... – nnnnnn 2012-01-31 10:53:38

+0

我使用IE 8.小提琴是我的代码的简化版本。我也会看到键盘标签,但问题只出现在点击上。与默认选定值没有区别(请参阅更新的小提琴)。 – sinsedrix 2012-01-31 11:15:47

回答

1

编辑1
选择风格直接作用虽然
http://jsfiddle.net/9Sudt/37/


这一切都归结为一个IE错误,如果你改变选择的类,它被重绘并关闭。

看到这个stackoverflow问题和接受的答案
JQuery select box focus problem in internet explorer

见IE这个例子
http://jsfiddle.net/9Sudt/34/ 如果单击选择第二次,它再次工作,因为该类没有再变

+0

谢谢,我想我已经修好了。首先我使用“focusin”而不是“click”。然后我写了'$(“。ui-state-focus”)。not($ element).removeClass(“ui-state-focus”);'以避免改变当前元素状态。 – sinsedrix 2012-01-31 13:19:08