【发布时间】:2013-05-23 21:56:53
【问题描述】:
我这里有一些循环,代码下的解释。
$(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 插件 这是现场示例 -> EXTERNAL LINK ON MY SERVER
请注意,当您单击“#first”时,您会收到 2 个警报 但是当粘贴带有更改哈希的链接时 ->CHANGED HASH 您只有一个警报。
它就像一个循环,当您点击链接时,您会从点击中获得警报,并从更改 URL 触发新哈希。 所以你收到了 2 个警报。
我只想要 1 个警报。 在这种情况下。您粘贴链接其触发器链接,该链接假定来自哈希名称,您收到 1 个警报。 当您单击链接时,它会更改哈希,但不会触发它更改此哈希。
【问题讨论】:
标签: javascript jquery hash triggers hashchange