7

他の StackOverflow の質問/回答に基づいて、いくつかの Jquery をセットアップしました。このスクリプトの目的は、div 内にある任意の a href タグに基づいて、div 全体をリンクにすることです。

これは問題なく動作しますが、新しいタブで開くには _blank に設定する必要があります。以下を試してみましたが、うまくいきませんでした。

$(document).ready(function() {
    $(".product-item").click(function() {
        $(this).target = "_blank";
        window.location = $(this).find("a").attr("href");
        return false;
    });
});

編集

助けていただきありがとうございますが、これらの答えはどれも実際には機能しません。機能するかどうかをテストせずに小さなスニペットではなく、実際に機能する完全なコードを誰かが貼り付けることができれば。ありがとう。

編集2

完全な実用的なソリューションを提供してくれたkristinalimに感謝します。

4

4 に答える 4

23

ページにリンクを設定するには、@Ravi と @ncsllvn の回答を組み合わせる必要があります。

// Find link in $(".product-item") and set "target" attribute to "_blank".
$(this).find("a").attr("target", "_blank");

別のウィンドウでページを開くには、次の質問を参照してください: jQuery click _blankカスタマイズのオプションについては、このリファレンスを参照してください。window.open

更新

一緒に何かが必要になります:

$(document).ready(function() {
  $(".product-item").click(function() {
    var productLink = $(this).find("a");

    productLink.attr("target", "_blank");
    window.open(productLink.attr("href"));

    return false;
  });
});

の使用法に注意してください.attr():

$element.attr("attribute_name")                   // Get value of attribute.
$element.attr("attribute_name", attribute_value)  // Set value of attribute.
于 2013-02-19T05:40:38.343 に答える
3

次の行を置き換えます。

$(this).target = "_blank";

と:

$( this ).attr( 'target', '_blank' );

これにより、HREF が _blank に設定されます。

于 2013-02-19T05:15:15.283 に答える
1

window.location 常に現在のウィンドウの位置を参照します。それを変更すると、現在のウィンドウにのみ影響します。

できることの 1 つは、リンクのtarget属性をに設定した後、リンクをクリックすることを強制すること_blankです。

これを確認してください: http://www.techfoobar.com/2012/jquery-programmatically-clicking-a-link-and-forcing-the-default-action

免責事項:私のブログです。

于 2013-02-19T05:23:57.000 に答える
1

div は http リクエストの処理方法がわからないため、target 属性を div に設定することはできません。リンクタグのターゲット属性を設定する代わりに。

$(this).find("a").target = "_blank";
window.location= $(this).find("a").attr("href")
于 2013-02-19T05:15:26.687 に答える