23

クリックすると href 属性が切り替わり、その場所に移動するリンクを作成しようとしています。

私のhtmlは次のとおりです。

<a href="http://google.com" rel="group" data-wpurl="http://yahoo.com"></a>

クリックすると、ブラウザーが href の場所ではなく data-wpurl の場所に移動するようにします。私が data 属性を使用している理由は、使用しているアプリケーションが href を使用する必要があるためです...ここでは関係ありません。

私のjQueryは次のとおりです。

$('a[rel="group"]').on('click', function(e) {
      e.preventDefault();
      var wpurl = $(this).attr("data-wpurl");
      $(this).attr('href', wpurl);
});

私は e.preventDefault(); を使用しています。ブラウザがユーザーを href に移動させないようにします。データ属性が href に割り当てられた後、クリックをトリガーするにはどうすればよいですか? 使っtrigger('click')てもclick();動かない!

何か案は?

4

4 に答える 4

34

同様のソリューションですが、呼び出す必要はありませんe.preventDefault()

$('a[rel="group"]').on('click', function(e) {
    e.originalEvent.currentTarget.href = $(this).data('wpurl');
});

私の観点からは、これはより一般的でクリーンなソリューションです。これはデフォルトのブラウザーの動作を変更しないためです (例: ユーザーがリンクをマウス ホイールでクリックすると、Jacks ソリューションでは新しいタブが開かれません)

于 2015-09-07T13:03:36.810 に答える
21

場所をすぐに変更する方が簡単です。

e.preventDefault();
location.href = $(this).data('wpurl');
于 2013-05-07T17:41:47.563 に答える
10

onmousedown を使用します。Google は検索結果ページでこの方法を使用して、ユーザーがクリックした内容を追跡できるようにします。リンク先を確認したい場合は、左クリックではなく右クリックしてください。どちらも onmousedown イベントをトリガーします。

http://jsfiddle.net/afLE3/

<a href="http://google.com" data-wpurl="http://yahoo.com" onmousedown="rwt(this)">CLICK HERE</a>

<script type="text/javascript">
  rwt = function(e){
    e.href = $(e).data('wpurl');
  }
</script>
于 2014-07-23T21:07:25.150 に答える