Переменная события передается в функцию change
со свойствами: value, path, pathNames, parameterNames, parameters, queryString
.Свойство, которое вы хотите отслеживать: pathNames
.
Вот несколько отрывков, которые я собрал, которые могут помочь вам отследить, насколько вы глубоки, а также что именно изменилось:
var $current_path = window.location.hash;
$.address.change( function(event) {
// get the difference in the two paths
$changed_path = event.path.replace(new RegExp('^'+$current_path,'i'), '');
// make sure we update the current path
$current_path = event.path;
// how deep is the new path?
$level = event.pathNames.length;
// break the changed part into segments, ignoring leading/trailing slashes
$changed_path_array = $changed_path.replace(/^\/|\/$/g, '').split('/');
// let's see what level actually changed from the current path
$changed_level = $level - $changed_path_array.length;
} );
Затем вы можете организовать оставшуюся часть своей функции, используя новую глубину в сочетании с массивом сегментов, чтобы точно определить, что нужно обновить.Основываясь на $ current_path, вы можете выполнить новую загрузку страницы или просто внести небольшие изменения где-то на странице.