0

jquery/jquerymobile で同じページにリダイレクトされるリンクを無効にする方法のベスト プラクティスを探しています。

たとえば、私がホームページにいて、ホームページを指すリンクがある場合、ページを更新することさえできません。

私のリンクのコード:

<a href="Homepage.aspx" rel="external">Home</a>
4

4 に答える 4

1

完全にテストされていませんが、コードの記述方法によっては、これが機能する可能性があります。

$('a').each(function(){
    if($(this).attr('href') === window.location.pathname) 
        $(this).removeAttr('href');
        // Alternatively: $(this).attr('href','#');
});
于 2013-01-18T00:45:53.980 に答える
1

これがベストプラクティスであるかどうかを知るには、jquery/jquery mobile に精通していませんが、うまくいくはずです。

$("a").each(function(){
   if(window.location.href==this.href)
     this.onclick=function(){return false};
});
于 2013-01-18T00:46:20.143 に答える
1

現在の URL を解析して、ページ名window.location.hrefを抽出できます。

次に、各リンクを反復処理し、現在のページの値と同じ href 値を持つリンクの動作を追加できます

var currentPage = ....// extract the page from window.location.href

$('a').each(function(index, element) {

    var currentA = $(this);
    if (currentA.attr('href') == currentPage) {
        // Append a listener on the click event that will return false
        // and stop the default behaviour
        currentA.on('click', false);
    }

});

注: ハンドラー関数として false を設定することは、false を返す無名関数を作成することと同じであり、呼び出しevent.stopPropoagation()と呼び出しを行う関数を作成することと同じです。event.preventDefault()

于 2013-01-18T00:49:44.890 に答える