我正在使用 JQuery 1.8.3 和 Dropkick 插件来自定义我的网站中的选择。 (https://github.com/JamieLottering/DropKick)。
dropkick 插件生成如下 HTML:
<div class="dk_container dk_theme_default dk_open" id="dk_container_min-price" tabindex="" style="display: block;">
<a class="dk_toggle" style="width: 117px;"><span class="dk_label">Min pris (€/$)</span></a>
<div class="dk_options" style="top: 29px;">
<ul class="dk_options_inner">
<li class="dk_option_current"><a data-dk-dropdown-value="0">Min pris (€/$)</a></li>
<li class=""><a data-dk-dropdown-value="50000">50.000</a></li>
<li class=""><a data-dk-dropdown-value="75000">75.000</a></li>
</ul>
</div>
问题是,当用户单击其中一个选项时,我需要执行一些特定的操作,因此我将一个事件绑定(bind)到该选项的单击,如下所示:
$('.dk_options_inner li').on('click', function(){
alert('this');
});
它在 Chrome 和 Firefox 中运行良好,但在 IE 中(我尝试过 IE10、IE9 和 IE8)则不起作用。
这是一个显示问题的jsfiddle: http://jsfiddle.net/NPRPf/2/
我尝试过使用 .bind() 和 .on(),但它们都不能在 IE 中工作(并且都可以在其他浏览器上工作)。我还尝试将 dk_options 的 css 更改为“visibility:hidden”而不是“display:block”,但它也不起作用。
有人知道会发生什么吗?
最佳答案
IE 10 的问题出在文件 jquery.dropkick.1-0.1.js 第 186 行的 DropKick 插件上,有一个比较来测试浏览器是否是 IE 6,对于 IE 10 及更高版本,此比较是正确的,鉴于第 17 行它检查了这一点:
$.browser.version.substr(0, 1) < 7
显然,这会将 IE 10 报告为 IE 1,因此将被视为 IE 6 或更早版本。
关于Jquery 事件未绑定(bind)到 IE 中的隐藏 div,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17371892/