gpt4 book ai didi

jQuery .live() 在 IE9 中不起作用

转载 作者:行者123 更新时间:2023-12-01 04:21:27 25 4
gpt4 key购买 nike

我在我的网站上使用 jQuery 1.7.1,并使用 .live() 函数来处理一些需要在将来添加的元素上调用的事件。由于某种原因它不起作用(没有错误,没有警报,没有显示任何内容)。我读过一点,有些人说它不起作用,另一些人说它工作正常,但我还没有看到任何解决方法、修复或任何最近的东西。它在其他浏览器中工作正常,只是在 IE9(可能还有其他 IE)中不行。

是否有我可以使用的 jQuery 中 .live 的替代方案、插件或解决此问题的解决方法?

我当前的代码如下:

$('select[name="CourseLevelSelector"] option').live('dblclick', function () {
//Do Stuff
});

- jack

编辑:

我的总目标是有 2 个多个选择框,一个包含数据,另一个为空白。当您双击带有数据的选择框中的选项时,它会将自身复制到空选择中。如果您双击已添加的选项,它将完全删除它。 (此代码有效,只是事件处理程序无效)

HTML 看起来是这样的:

<select name="CourseLevelSelector" multiple="multiple">
<option value="1">First</option>
<option value="2">Second</option>
<option value="3">Third</option>
</select>
<select name="CourseLevelIDs" multiple="multiple">

</select>

最佳答案

在 IE 中,option 元素不会获取点击事件,只有 select 元素才会获取点击事件。您需要将事件绑定(bind)到选择对象。

在 IE 中尝试此测试应用程序以查看问题:http://jsfiddle.net/jfriend00/JGrbh/

根据,您更多要求披露您实际想要做什么,您可以像这样修复它 http://jsfiddle.net/jfriend00/Ry9Ns/使用动态形式的 .on() 而不是已弃用的 .live()

$("#container").on('dblclick', 'select[name="CourseLevelSelector"]', function(e) {
var ids = $('select[name="CourseLevelIDs"]');
$(this).find(":selected").each(function() {
// make sure selected item is not already in the other list
if (!ids.find('[value="' + this.value + '"]').length) {
$(this).clone().appendTo(ids);
}
});

})


$("#container").on('dblclick', 'select[name="CourseLevelIDs"]', function(e) {
$(this).find(":selected").remove();
})​

关于jQuery .live() 在 IE9 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10109946/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com