[英]How do I trigger the jQuery change event using only HTML DOM methods in IE?
我已经在几个地方问了这个问题,我现在正在尽可能广泛地投入网络,看看是否有我可以使用的解决方案。 给出以下HTML:
<select id="test">
<option value="">Select One...</option>
<option value="1">One</option>
<option value="2">Two</option>
</select>
以及以下jQuery事件绑定:
$("#test").change(function( event ) {
console.log("Changed");
});
我希望能够仅使用DOM方法触发更改事件。 也就是说,我不想调用jQuery .change()
或.trigger()
方法来触发jQuery更改事件。 这是在浏览器自动化框架的上下文中,它需要自动从任何页面上的<select>
元素中选择选项,因此不能依赖于在任何特定页面中加载的jQuery。 此外,我们只对IE的这个问题的解决方案感兴趣,因为我们只对该浏览器有困难。 另请注意,我们需要一个适用于6-9的所有IE版本的解决方案。 我想做类似以下的事情(故意特定于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事件。 您可以在此链接中找到此特定问题的完整工作示例。 为了让它工作,我必须调用哪些具体代码?
你可以这样做:
var e = document.getElementById('test');
var evt = document.createEvent("HTMLEvents");
evt.initEvent("change", true, true);
e.dispatchEvent(evt);
在这里摆弄http://jsfiddle.net/a5DUE/7/ (在IE9中适合我)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.