2

新しいページを開くはずの次の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>

したがって、まったく同じ内容の 2 つの新しいウィンドウが表示されることを除いて、すべてが正常に機能しています。onclick イベントで false を返すことに何か関係があると示唆している人を見たことがありますが、ここではそうではないと思います。

また、私は次のようなことをしようとしました:

var handler = window.open(...);

編集: gdoron が提案したものに似たものを試しましたが、ウィンドウが開かず、クリック イベントが発生しません。

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

3 に答える 3

6

これを引き起こす原因:

  1. 2 回購読しました。
  2. 2 回クリックしています。
  3. div_linkクラスとイベント バブルを含む 2 つのネストされた div があります。

最後のオプションに関してはon、非推奨 (1.7)-削除 (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;
});

onと違い、泡立ちを止めることができますlive

于 2013-01-31T17:24:32.260 に答える