我在这里有某种循环,代码下的解释。
$(document).ready(function(){
var newHash = "";
$('a').click(function(event) {
var id = $(this).attr('href');
alert(id);
//Do something with selector with id that is clicked
window.location.hash = $(this).attr("href");
event.preventDefault();
});
$(window).bind('hashchange', function(){
newHash = window.location.hash.substring(1);
if (newHash) {
$("ul li." + newHash + " a").trigger("click");
};
});
$(window).trigger('hashchange');
})
<ul>
<li class="first"><a href="#first">first</a></li>
<li><a href="#second">second</a></li>
<li><a href="#third">third</a></li>
</ul>
我正在使用 Ben Alman 的 ba-hashchange 插件 这是现场示例 ->我的服务器上的外部链接
请注意,当您单击“#first”时,您会收到 2 个警报,但是当粘贴更改哈希的链接时 -> CHANGED HASH 您只会收到一个警报。
它就像一个循环,当您单击链接时,您会从单击中获得警报,并从更改 URL 触发新哈希。因此,您收到了 2 个警报。
我只想要 1 个警报。在这种情况下。您粘贴链接其触发器链接,该链接假定来自哈希名称,您收到 1 个警报。当您单击链接时,它会更改哈希,但不会触发它更改此哈希。