У меня это работает только с одним экземпляром ссылок, но я хотел объединить свой код и повторно использовать один и тот же фрагмент для каждого экземпляра ссылок.
В настоящее время у меня есть работа:
$("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-left-pane a"), который находится в подменю, расположенном в файле files.php. Window.location.hash будет выглядеть так:
(в этом примере пользователь нажимает <a href="buy.php">Buy</a>
)
www.site.com/#!/s2xi/files/buy/
$ (window) .bind ('hashchange') должен затем перевести хеш в
www.site.com / buy.php