您的位置:首页 > 其它

页面跳转小试 - 模拟a.click事件

2014-11-26 21:19 204 查看
想实现重定向的功能,自然使用到 window.location.href=XXX。但是这种方法实现的是在当前页面下发生的跳转,本来的需求是不影响当前页面的使用,在新的选项卡下打开目标页面。

事后的事后才发现window.open简简单单地解决了这个问题: window.open(url, "_blank", params)。可当时映入脑海的第一个想法就是 <a target="_blank">,模拟标签a的点击事件,实现新页面的跳转。想到了就要去试一下,这不,问题来了。

页面的测试元素为:

<button id="btnGo">Go To New Page</button>
<a id="lnkBaidu" href="http://www.baidu.com" target="_blank">Towards Baidu!</a>

定义事件为:

$("#btnGo").click(function(){
$("#lnkBaidu").click();
});

当点击按钮时,在新的选项卡内显示百度首页。这应该是木有一点问题的,可无论我怎么点击,页面上什么效果都没有。这是肿么回事?标签a不支持直接触发click事件? 没道理呀!又给a定义了click事件:

$("#lnkBaidu").click(function(){
alert("OK?");
});

直接点击页面上的链接,先显示对话框,然后跳转,正常。但是模拟的click,弹出了对话框,click事件触发了,但是跳转失效了?? 怎么破??

jin同学的做法是添加了span标记,这样跳转倒是成功了,但是为什么呢?

。。。终于,终于找到了说明:[<a>标签内一定要有内容,并且要模拟里面的内容被点击而不是<a></a>被点击]

虽然还是有点不明所以,但是最终的解决方案还是要出来的:(仅是文本貌似不可以,需要添加个任意的标记)

<a id="lnkBaidu" href="http://www.baidu.com" target="_blank"><b>Towards Baidu!</b></a>

模拟事件为:

$("#lnkBaidu b").click(); // or $("#lnkBaidu").children().click();
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐