Хорошо, сначала, вместо:
window.location.href
Вы также можете использовать:
window.location.search
, поскольку это только часть параметра URL (нужная часть). Также ваша переменная:
$page
... соглашение об именовании переменных "$ foo" обычно предназначено для применения к переменным объекта jQuery. Другими словами:
var foo = "foo";
var $foo = $(foo);
Так что (если у вас нет своего собственного, другого соглашения), я думаю, что $ page действительно должен быть назван page.
Что касается:
$side_menu.find('> li > a').filter($page).click();
Не могу сказать точно, но похоже, что вы фильтруете по идентификатору. Это верно? Если это так, фильтр не имеет смысла; Идентификаторы по определению уникальны на странице, поэтому просто выполните:
$($page).click();
- это одно и то же (даже с точки зрения производительности).
Но это не работает.
Что я могу сделать, чтобы фильтровать данные с помощью переменной $ page?
Трудно сказать, не зная значения переменной вашей страницы. Я бы предложил добавить это:
console.log($page);
$side_menu.find('> li > a').filter($page).click();
Хорошо, если вы используете Firebug или браузер с консолью (если нет ... вы должны использовать Firebug ;-), но вы также можете просто изменить его на «alert ($ page)»).
Когда вы это сделаете, вы должны увидеть, какой селектор вы действительно используете. Скорее всего что-то не так с этим. Если вы не видите ничего очевидного, попробуйте добавить:
console.log($page); console.log($($page));
$side_menu.find('> li > a').filter($page).click();
(трюк с предупреждением не сработает). Это должно показать вам, какие элементы (если таковые имеются) jQuery выбран с помощью вашего селектора. Между этим и просмотром самого селектора вы, скорее всего, найдете проблему (а если нет, возможно, попробуйте поиграть с запуском команд в консоли Firebug вручную)