我创建了一个可点击的div
元素,其中包含一些链接。当我点击div
上的任意位置时,页面将转到邮件链接,但我希望能够转到div
内的所有其他链接。我设法通过调用e.stopPropagation();
方法来完成此操作。这非常好。你可以在这里看到它:
http://jsfiddle.net/nfZ3y/1/
问题是,当按住ctrl
键并单击链接(在新选项卡上打开它)时,链接将不起作用,页面将转到默认链接(而不是我刚刚点击了)。如何实现子链接的所有功能并为我的div
添加默认链接?
答案 0 :(得分:1)
正如人们所指出的,似乎stopPropagation
在Firefox中与其他浏览器的工作方式不同。我唯一的建议是自己处理点击:
$('.first').click(function (e) {
var title = $(this).children('.main-link');
var href = title.attr('href');
if ( e.ctrlKey )
window.open(href,"_blank");
else
window.location = href;
return false;
});
$('.first a').click(function (e) {
var title = $(this);
var href = title.attr('href');
if ( e.ctrlKey )
window.open(href,"_blank");
else
window.location = href;
return false;
});
Working example关于jsFiddle。
更新以减少冗余,将第一个处理程序替换为:
$('.first').click(function (e) {
$(this).children('.main-link').click();
return false;
});