在列表中我有几个链接:
<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>
我在网址中使用的另一个输出是+而不是#:
<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”。 (mydomain.com/#white) 我想避免重复,所以有没有办法检查URL中是否已存在“#white”,如果是,则不允许点击该链接。
答案 0 :(得分:1)
使用Javascript window.location.hash
调用来确定当前网址锚是什么,并将您的逻辑基于此:
$('.dropdowner a').click(function (event) {
if ($(this).attr('href')==window.location.hash){
return false;
}
});
答案 1 :(得分: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);
}
});
请参阅:
答案 2 :(得分:1)
这应该可以满足您的需求 - location.hash为您提供来自URL的当前锚点哈希
$(function(){
$('ul.dropdowner').find('a').click(function() {
if ($(this).attr('href') == location.hash) {
return false;
}
}
}
答案 3 :(得分:1)
这个行为就像你默认说的那样。 如果url包含任何类型的#value1 它将不重复,并且网址永远不会像:#value1#value1