【发布时间】:2011-07-25 12:57:43
【问题描述】:
我制作这个插件是为了让方法“[0].click()”跨浏览器,但我不能在 Firefox 中工作,我在 Firefox 中的当前版本是 3 .6。 16. 其他浏览器(Opera / Chrome / Safari / IE)运行良好。
HTML:
<a href="#" id="myanchor">z</a>
<ul>
<li id="1">1</li>
<li id="2">2</li>
<li id="3">3</li>
</ul>
Javascript:
jQuery.fn.runClick = function () {
var element = jQuery(this).get(0);
if (jQuery.browser.msie) { // IE
element.click();
}
else {
//var evt = document.createEvent("HTMLEvents");
//evt.initEvent('click', true, true);
var evt = element.ownerDocument.createEvent('MouseEvents');
evt.initMouseEvent("click", true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);
element.dispatchEvent(evt);
}
return this;
};
jQuery(function() {
jQuery('li').bind('click', function(event) {
var
key = jQuery(this).attr('id');
jQuery('#myanchor').attr('href', 'www.mydomaind.com/x/?id=' + key).runClick();
});
});
谢谢。
编辑
我根据 cmets 和响应扩展了一个示例
编辑二
类似的问题:
how-do-i-programmatically-click-on-an-element-in-firefox
browser-friendly-way-to-simulate-anchor-click-with-jquery
【问题讨论】:
-
我错过了什么吗? jQuery '.click' 功能已经是跨浏览器了。 IE。
$('#yourElement').click(function() {})已经可以跨浏览器工作了。 -
所以
.trigger('click')不起作用? -
请看示例,我在主播上有一个事件,我必须运行'href' current
-
不要忽视这个问题:它比看起来更棘手。据我了解,问题在于 Firefox 确实响应了
<a>标签上的 onclick 事件,但它并没有按预期更改文档位置。 jQuery 并没有改变这个事实。
标签: javascript jquery events firefox