我只用鏈接的一個實例工作,但我想合併我的代碼並重復使用鏈接的每個實例的相同片段。如何根據鏈接點擊動態更改哈希位置取得網址
目前我有工作:
$("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);
});
});
});
}
});
現在,如果用戶點擊$(「導航一」),它將使window.location.hash
這個樣子的
(在這個例子中,用戶點擊然後<a href="files.php">Files</a>
) www.site.com/#!/s2xi/files/
的$(窗口).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/
的$(窗口) .bind(「hashchange」)應該然後散翻譯成
www.site.com/buy.php
正確的,但我也想從第二次點擊事件的URL刪除#/用戶/文件/添加.PHP頁面的名字! 。 – Eli 2011-02-13 04:21:26