【发布时间】:2011-02-13 14:27:41
【问题描述】:
我只使用一个链接实例,但我想整合我的代码并为每个链接实例重复使用相同的 sn-p。
目前我有工作:
$("nav a").live('click', function(){
window.location.hash = '!/' + usr + '/' + $(this).attr("href").replace('.php', '/');
origHash = $(this).attr("href");
return false;
});
$("#files-left-pane a").live('click', function(){
window.location.hash = '!/' + usr + '/files/' + $(this).attr("href").replace('.php', '/');
origHash = $(this).attr("href");
return false;
});
$(window).bind('hashchange', function(){
dump = window.location.hash;
newHash = window.location.hash.substring(3).replace(usr + '/', '').replace('/', '.php');//.replace('files/', '');
//newHash = window.location.hash.replace(dump, origHash, 'g');
console.log(newHash);
if (newHash) {
$wrap.find("#main-content").fadeOut(200, function() {
$wrap.load(newHash + " #main-content", function() {
$content.fadeIn(function() {
$wrap.animate({
height: baseHeight + $content.height() + "px"
}, 500);
});
});
});
}
});
现在,如果用户点击 $("nav a") 它将使 window.location.hash 看起来像这样
(在这个例子中,用户点击<a href="files.php">Files</a>)
www.site.com/#!/s2xi/files/
然后 $(window).bind('hashchange') 会将哈希转换为
www.site.com/files.php
然后,如果用户单击位于 files.php 中的子菜单中的 $("#files-left-pane a")。 window.location.hash 将如下所示:
(在这个例子中,用户点击<a href="buy.php">Buy</a>)
www.site.com/#!/s2xi/files/buy/
然后 $(window).bind('hashchange') 应该将哈希转换为
www.site.com/buy.php
【问题讨论】:
标签: javascript hash