Jquery实时点击导致双窗口打开,不能返回false,防止默认值,或者只是让链接直接停止

Jquery live click causing double window opening, can't return false, prevent default, or just get the link to plain stop!

本文关键字:或者 默认值 链接 false 返回 实时 不能 窗口 Jquery      更新时间:2023-09-26

所以对于我的生活,我不明白为什么这不起作用。当有人点击链接时,我有一个实时点击。任何网站外部的链接都应该在一个新标签中打开。这在理论上适用于一些通过ajax刷新内容的drupal视图。

下面是我挖出来的代码。它只是抓取链接,链接到外部,这是有效的。当警报触发时,它也可以在单击它们时工作(删除它不会改变任何东西)。stopimmediatepropagation()不执行任何操作,preventDefault不执行任何操作,返回false也不执行任何操作。链接仍然有效!

我只是想删除链接!我可以处理使它在新窗口中打开,因为window.open(this.href)可以工作,只是与这个孩子一起在当前窗口和新窗口中打开!

$("a[href^='http:']:not([href*='" + window.location.host + "'][target='_blank'])").live('click', function(e){
    alert('this is it!');
    e.stopImmediatePropagation();
    e.preventDefault(); 
    return false;
    //window.open(this.href);
});  

非常感谢你的帮助!

我设置为活的按钮也有同样的问题。我最终使用了一个全局变量…本质上是一个标志布尔,我会在每个函数中检查,然后在函数....(即....)结束时重置全局设置为false....检查变量....设置为true.....做我的事....然后在退出函数之前再次设置为false)....似乎目前为止工作....

试试这个:

$("a[href^='http:']:not([href*='" + window.location.host + "'][target='_blank'])").live('click', function(e){
    e.preventDefault();
    window.open(this.href, "_blank");
});