2012-10-15 70 views
0

在名單上有幾個鏈接的HREF:檢查URL中包含的鏈接我已經點擊

<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即:

<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> 

如果我點擊鏈接白色,然後「#白色」插入到我的網址。 (mydomain.com/#white) 我想避免重複,所以有沒有辦法檢查URL中是否存在「#white」,如果是,請不要點擊鏈接。

回答

1

使用JavaScript window.location.hash調用來確定當前的URL錨是什麼,立足於你的邏輯:

$('.dropdowner a').click(function (event) { 
    if ($(this).attr('href')==window.location.hash){ 
     return false; 
    } 
}); 
+0

反正是有匹配的關鍵字?我正在使用哈希標記,但在某些情況下,我的輸出是我們使用「+」,即:「+白色」 – user992731

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); 
    }   
}); 


參見:

1

這應該做你要找什麼 - 的location.hash爲您提供了從URL當前錨散列

$(function(){ 

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

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

    } 

} 
1

這種行爲就像你默認說的那樣。 如果URL包含任何形式的#值1 將副本和URL可以永遠看起來像:#值1#值1