gpt4 book ai didi

javascript - 如何在 IE 中仅使用 HTML DOM 方法触发 jQuery 更改事件?

转载 作者:行者123 更新时间:2023-11-29 10:23:11 25 4
gpt4 key购买 nike

我已经在好几个地方问过这个问题,现在我正在尽可能广泛地撒网,看看是否有我可以使用的解决方案。给定以下 HTML:

<select id="test">
<option value="">Select One...</option>
<option value="1">One</option>
<option value="2">Two</option>
</select>

和以下 jQuery 事件绑定(bind):

$("#test").change(function( event ) {
console.log("Changed");
});

我希望能够仅使用 DOM 方法触发更改事件。也就是说,我不想调用 jQuery .change().trigger()导致触发 jQuery 更改事件的方法。这是在 browser automation framework 的上下文中,它需要自动从 <select> 中选择选项任何页面上的元素,因此不能依赖于在任何特定页面中加载的 jQuery。此外,我们只对 IE 的这个问题的解决方案感兴趣,因为我们只是在使用该浏览器时遇到困难。另请注意,我们需要一个适用于 IE 6-9 的所有版本的解决方案。我想做类似下面的事情(特意遵循 IE 特定的代码):

var e = document.getElementById('test');
e.item(1).selected = true;
e.fireEvent("onchange"); // What needs to happen here to get the jQuery event to fire?

但是,这不会导致触发 jQuery 事件。您可以在 this link 找到此特定问题的完整工作示例。 .我必须调用什么特定代码才能使其正常工作?

最佳答案

你可以这样做:

var e = document.getElementById('test');
var evt = document.createEvent("HTMLEvents");
evt.initEvent("change", true, true);
e.dispatchEvent(evt);

在这里摆弄http://jsfiddle.net/a5DUE/7/ (在 IE9 中为我工作)

关于javascript - 如何在 IE 中仅使用 HTML DOM 方法触发 jQuery 更改事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7272031/

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