模拟点击事件的选择(不工作的IE和FF)

Simulate click event on select (not working for IE and FF)

本文关键字:IE 工作 FF 事件 选择 模拟      更新时间:2023-09-26

我想模拟点击事件的选择使用按钮。通过下面的链接,我得到了启发。用jQuery模拟点击选择元素

在上面的线程这个小提琴是工作良好的铬。我在firefox和Internet explorer中遇到了相同的问题。

我已经编辑了小提琴。这是小提琴,但它似乎不工作。在这个小提琴,我能够进入功能,但实际的点击事件是不开火的选择。我丢失的代码片段,因为我的代码不工作。有什么帮助吗?

这里是HTML代码。

<select id="dropdown">
<option value="Red">Red</option>
<option value="Green">Green</option>
<option value="Blue">Blue</option>
</select>
<br>
<button id="fire" type="button" onclick="runThis()">Show dropdown items</button>

这是Javascript。

// <select> element displays its options on mousedown, not click.
showDropdown = function (element) {
var event;
event = document.createEvent('MouseEvents');
event.initMouseEvent('mousedown', true, true, window);
element.dispatchEvent(event);
}; 
// This isn't magic.
window.runThis = function () { 
var dropdown = document.getElementById('dropdown');
//showDropdown(dropdown);
eventFire(dropdown, 'click');
};
function eventFire(el, etype) {
alert('hi');
if (el.fireEvent) {
    el.fireEvent('on' + etype);
    el[etype]();
} else {
    var evObj = document.createEvent('Events');
    evObj.initEvent(etype, true, false, window);
    el.dispatchEvent(evObj);
}
}

我还找到了几个相同类型操作的参考。

HTML文件

    <button>Trigger the link below</button><br />
    <a href="http://www.yahoo.com/"  target="_blank">
    http://www.google.com/</a> (new window)
    <br>
        <select id="dropdown">
    <option value="Red">Red</option>
   <option value="Green">Green</option>
   <option value="Blue">Blue</option>
   </select>

这是一个javascript文件

function eventFire(el, etype) {
alert('hi');
if (el.fireEvent) {
    el.fireEvent('on' + etype);
    el[etype]();
} else {
    var evObj = document.createEvent('Events');
    evObj.initEvent(etype, true, false);
    el.dispatchEvent(evObj);
}
}
document.getElementsByTagName("button")[0].onclick = function() {
var element = document.getElementsByTagName("select")[0];
eventFire(element, "click");
};

这上面的小提琴也不工作。如果需要更多的信息,请告诉我。

上面我引用的是stackoverflow本身。由于我的帐户限制,我不能粘贴直接链接。

我是这样做的:

$("#fire").click(function () {
    var e = document.createEvent("MouseEvents");
    e.initMouseEvent("mousedown");
    $("#dropdown")[0].dispatchEvent(e);
});

这里是JSFiddle演示