gpt4 book ai didi

jquery 更改事件在 Internet Explorer (IE) 中未触发

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

好吧,我知道还有其他问题与我的问题相关,但我读过的都没有回答我的问题。

我有一个选择标签,其中一些选项绑定(bind)到更改事件,但是当用户单击选择框然后按向上/向下键时,更改事件不会在 IE 中触发。它在 Firefox 中触发,但我还没有检查 Chrome。

所以我想我想知道是否有一个简单的解决方案,我只想这样做

$("#selector").change(function () {//Add code });

我现在的解决方法是这样做:

$("#selector").bind('change keyup',function () {//Add code });

我想我可以创建一个像这样的插件:

$.fn.myChange = function (fcn) { return this.bind('change keyup',fcn);}

我的主要想法是,jquery 作为一个库应该抽象出浏览器兼容性的丑陋细节,所以我更希望我仍然可以使用基本的 .change 函数,而不必担心我使用的是什么浏览器.

我只是想知道这是否应该这样做。有更好的办法吗?

更新:

我提交了bug给 jquery 团队,看看他们的想法。

Here's an example这说明了问题所在。打开它,单击选择框,然后按向上/向下。您会注意到 IE 不会触发更改事件,而 FF 和 Chrome 则会触发。

最佳答案

在您的示例中,如果您进行此更改,它将起作用:

$("#sel").bind($.browser.msie ? 'propertychange' : 'change', function(e) {
$("#output").append("boxval changed!" + $(this).val());
});

请注意,我添加了 + $(this).val(),以便您可以看到它在实际值上的工作情况。

您可以在这里看到它的实际效果:http://jsfiddle.net/At8Ht/3/

请注意,这也可以这样做:(删除浏览器嗅探)但我尚未在所有浏览器中进行测试。

$("#sel").bind('propertychange change', function(e) {
$("#output").append("boxval changed!" + $(this).val());
});

关于jquery 更改事件在 Internet Explorer (IE) 中未触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4823015/

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