浏览器友好的方式来模拟锚点击与jQuery? [英] Browser-friendly way to simulate anchor click with jQuery?
本文介绍了浏览器友好的方式来模拟锚点击与jQuery?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我试图使用jQuery模拟一个锚点标签的点击。我一直在挖掘StackOverflow和谷歌一段时间,没有发现任何东西在所有的测试的浏览器都有效。到目前为止,我发现这个:
I'm trying to simulate a click on an anchor tag using jQuery. I've been digging around StackOverflow and Google for a while and haven't found anything that works on all of the browsers I'm testing. So far, I've found this:
$(document).ready(function() {
$.fn.fireEvent = function(eventType) {
return this.each(function() {
if (document.createEvent) {
var event = document.createEvent("HTMLEvents");
event.initEvent(eventType, true, true);
return !this.dispatchEvent(event);
} else {
var event = document.createEventObject();
return this.fireEvent("on" + eventType, event)
}
});
};
$('a').fireEvent('click');
});
这将触发Safari中的点击事件,但不会触发FireFox或我测试的IE版本。所以,哦,强大的头脑的SO,我做错了什么?非常感谢任何指导。
This will fire a click event in Safari, but not FireFox or the version of IE I tested. So, oh mighty minds of SO, what am I doing wrong? Any guidance would be greatly appreciated.
推荐答案
这应该可以工作...
This should work...
$(function() {
fireClick($("a")[0]);
});
function fireClick(elem) {
if(typeof elem == "string") elem = document.getElementById(objID);
if(!elem) return;
if(document.dispatchEvent) { // W3C
var oEvent = document.createEvent( "MouseEvents" );
oEvent.initMouseEvent("click", true, true, window, 1, 1, 1, 1, 1, false, false, false, false, 0, elem);
elem.dispatchEvent(oEvent);
}
else if(document.fireEvent) { // IE
elem.click();
}
}
这篇关于浏览器友好的方式来模拟锚点击与jQuery?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文