Window.open 正在打开 2 个相等的窗口

eli*_*hin 3 javascript jquery

我有以下 html/jquery 代码,应该打开一个新页面,但打开了 2:

$('.div_link').live('click', function(){
    window.open($(this).attr('url'), '_blank', 'toolbar=no,resizable=yes,location=yes,menubar=yes');
});

<div class="div_link" url="/test/as/8888888-888">8888888-888</div>
Run Code Online (Sandbox Code Playgroud)

所以,一切工作正常,除了我得到两个新窗口,其中内容完全相同。我看到有人建议在 onclick 事件中返回 false 与此有关,但我认为这里的情况并非如此。

另外,我尝试过做类似的事情:

var handler = window.open(...);
Run Code Online (Sandbox Code Playgroud)

编辑: 尝试了类似于 gdoron 建议的操作,但它不会打开任何窗口,并且不会触发单击事件。

$('div.div_link').on({
    click: function(){
        window.open($(this).attr('url'), '_blank','toolbar=no,resizable=yes,location=yes,menubar=yes');
        return false;
}});
Run Code Online (Sandbox Code Playgroud)

gdo*_*ica 6

什么可能导致这种情况:

  1. 您订阅了两次。
  2. 您点击了两次。
  3. 您有两个带有类div_link和事件气泡的嵌套 div。

关于最后一个选项,请使用on而不是 deprecated(1.7)-deleted (1.9)live函数:

$('#containerId').on('click', '.div_link', function(){
    window.open($(this).attr('url'), '_blank', 'toolbar=no,resizable=yes,location=yes,menubar=yes');
    return false;
});
Run Code Online (Sandbox Code Playgroud)

on与 不同的是,您可以停止冒泡live