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

想实现重定向的功能,自然使用到 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();

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值