0

img リンクをクリックすると、簡単なスライド アニメーションが表示されます。クライアントは、新しいウィンドウ/タブで開くリンクを要求しています。window.open私が試した、またはセットwindow.location = href;で試したすべてのオプションはvar href = this.href;機能しません。

$("#coatings").click(function(event) {
         event.preventDefault();
         var href = this.href;

         $("#sqeeguee_rightLink").fadeIn(100).animate({
            right:'-=450px'                 
         }, 2000,
         function() {
             window.location = href;
         });
     });

HTML:

<div id="sqeeguee_rightLink"></div>
        <a href="url here" target="_blank" id="coatings"><img src="coatings.jpg" width="456" height="592" alt="" /></a>

どんな入力でも素晴らしいでしょう!

4

2 に答える 2

1

アニメーションが完了した後、新しい URL が同じウィンドウで開かれるため、引用したコードはおそらく「機能しません」。新しいウィンドウを開くイベントを ( を呼び出してevent.preventDefault()) キャンセルしました。

最新のブラウザーでは、ユーザーが開始したイベント ( など) の処理中にwindow.openJavaScript コードでしかウィンドウを開くことができないため、失敗します。アニメーションはユーザーが開始したイベントによって開始されますが、その後イベント ハンドラーが完了するため、ブラウザーに関する限り、これを実行しようとするとスパム ウィンドウが開き、そのポップアップ ブロックがそれを防ぎます。ハプニング。:-)clickwindow.open

現在のウィンドウにアニメーションを表示し、それが完了したら新しいウィンドウを開くことが目標である場合、それを行うためのきれいな方法はありません。元の新しいウィンドウを開くことできる場合がありますが、それを背景に移動させ (「ポップアンダー」)、アニメーションが完了したら前面に移動します。ただし、それは優れたユーザー エクスペリエンスとは言えません。

于 2012-11-09T17:12:58.880 に答える
0

あなたの問題は、リンクを開く方法ではなく、href が適切にキャプチャされていないことだと思います。

クリックしたリンクの href 属性を開く (画像をラップする) 必要がある場合は、次のようにしてください。

var href = $(this).attr('href');

イベント ハンドラー メソッド内。

ロブ

于 2012-11-09T17:21:19.823 に答える