0

リストには、いくつかのリンクがあります。

 <ul class="dropdowner" id="coll-filter">
    <li><a href="#black">Black</a></li>
    <li><a href="#white">White</a></li>
    <li><a href="#blue">Blue</a></li>
</ul>

私が持っている別の出力では、URL Ie で # の代わりに + を使用しています。

  <ul class="dropdowner" id="coll-filter">
    <li><a href="+black">Black</a></li>
    <li><a href="+white">White</a></li>
    <li><a href="+blue">Blue</a></li>
</ul>

リンク White をクリックすると、「#white」が URL に挿入されます。(mydomain.com/#white) 重複を避けたいので、URL に「#white」が既に存在するかどうかを確認し、存在する場合はリンクをクリックできないようにする方法はありますか。

4

4 に答える 4

1

Javascriptwindow.location.hash呼び出しを使用して、現在の URL アンカーが何であるかを判断し、それに基づいてロジックを作成します。

$('.dropdowner a').click(function (event) {
   if ($(this).attr('href')==window.location.hash){
      return false;
   }
});
于 2012-10-15T21:08:58.200 に答える
1

以下は、URL の # または + の後のコンポーネントに一致するリンクを無効にするだけでなく、以前に無効にしたリンクを有効にします。

$('.dropdowner a').on('click', function() {
    var url = window.location,
        tag = url.split('+'),
        hash = window.location.hash,
        supress = function(term) {
            $('.dropdowner a[href=' + term + ']').bind('click', false);
        };      
    $('.dropdowner a').unbind('click', false);
    if (hash) {            
        supress(hash);
    } else if (typeof tag !== 'undefined') {            
        supress('+' + tag);
    }        
});


見る:

于 2012-10-15T21:09:00.153 に答える
1

これはあなたが探していることをするはずです - location.hash は URL からの現在のアンカーハッシュを提供します

$(function(){

    $('ul.dropdowner').find('a').click(function() {

        if ($(this).attr('href') == location.hash) {
            return false;
        }

    }

}
于 2012-10-15T21:09:05.440 に答える
1

あなたがデフォルトで言ったように、これは行動します。URL に任意の種類の #value1 が含まれている場合、重複することはなく、URL が次のようになることはありません: #value1#value1

于 2012-10-15T21:13:22.490 に答える