【问题标题】:Simulate click event on select (not working for IE and FF)在选择时模拟点击事件(不适用于 IE 和 FF)
【发布时间】:2015-11-21 01:57:38
【问题描述】:

我想使用按钮模拟点击事件。我通过以下链接获得了启发。 Simulate click on select element with jQuery

在上面的线程上,这个小提琴在 chrome 上工作得很好。我遇到了与 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 本身引用的。由于我的帐户限制,我无法粘贴直接链接。

【问题讨论】:

标签: javascript jquery html select onclick


【解决方案1】:

这是我所做的:

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

Here is the JSFiddle demo

【讨论】:

  • @HanletEscaño 这在 chrome 中运行良好,但在 Firefox 和 IE 中无法运行。我想放置跨浏览器兼容性的代码。不过还是谢谢。
猜你喜欢
  • 1970-01-01
  • 2013-03-11
  • 1970-01-01
  • 2013-07-09
  • 1970-01-01
  • 1970-01-01
  • 2021-09-13
  • 2016-05-27
  • 1970-01-01
相关资源
最近更新 更多