在select上模拟click事件(不适用于IE和FF)

我想在选择使用按钮上模拟点击事件。 我通过以下链接获得灵感。 使用jQuery模拟select元素

在上面的线程这个小提琴工作正常铬。 我面临着firefox和Internet Explorer的相同行为问题。

我编辑了小提琴。 这是小提琴,但似乎它不起作用。 在这个小提琴我能够进入该function但实际的点击事件不会在选择上触发。 我缺少代码片段,因为我的代码不起作用。 填补空白的任何帮助。

这是HTML代码。

 Red Green Blue  

这是Javascript。

 //  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文件

  
http://www.google.com/ (new window)
Red Green Blue

这是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演示