【问题标题】:jquery click function and "new page"jquery点击功能和“新页面”
【发布时间】:2012-04-16 20:10:32
【问题描述】:

我使用 jQuery 的“点击”功能。如果使用简单的点击 img 就可以了,但是当这张图片上带有标签 'target="_blank"' 的链接或用户点击右键,然后'在新窗口中打开',这个功能不起作用。

当用户在新窗口中打开链接时,该点击功能是如何发挥作用的?

我的代码:

$('.button_img').live('click', function(){
    alert('new');
    //do something
});

<a href="http://www.google.com" target="_blank">
<img class="button_img" src="img.png" />
</a>    

【问题讨论】:

  • 你没有。用户可以正常控制他们的浏览器。

标签: jquery


【解决方案1】:

我认为这应该可行

$('.button_img').live('click', function(){
   $(this).attr('target','_blank');
    //do something
});

或者你可以试试这个

$('.button_img').live('click', function(){
   window.open(this.href);
   e.preventDefault(); //or return false;
});

更多信息请参考this

【讨论】:

  • 您正在将 target=_blank 添加到 img。
  • 我认为您完全错过了问题的重点,因为这根本不相关。
  • Jayanga>谢谢,但你错误地理解了我的问题。我不需要在新页面中打开链接。当用户在新窗口中打开链接时,我的点击功能不起作用。那是个问题。
  • 对不起,我会再次尝试提供答案
【解决方案2】:

你不能阻止用户打开一个新标签,我唯一能想到的就是不使用&lt;a&gt;&lt;/a&gt;标签,所以他们甚至不会得到这个选项,但它仍然看起来像一个可点击的元素像这样:

JS

$('.button_img').live('click', function(){
    alert('new');
    //do something

    //If you want to redirect to, for example, google in some case you do:
    //window.location = "http://www.google.com";
});

HTML

<div class="fakeLink">
     <img class="button_img" src="img.png" />
</div>  

CSS

 .fakeLink {
        cursor:pointer;
        /*     styles     */
    }

【讨论】:

    【解决方案3】:

    只需添加“return false;”在您的点击功能结束时:

    $('.button_img').live('click', function(){
        alert('new');
        //do something
       return false;
    });
    

    这将阻止单击鼠标左键后打开新窗口。 请不要用鼠标右键单击来做任何事情——这是用户的事情,做与否。

    【讨论】:

    • 感谢“return false;” ;)。但我需要计算所有点击次数,所以我需要并捕获“新窗口中的页面”
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-11
    • 1970-01-01
    • 2021-06-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多