Когда ссылка не указывает нигде (href= "#"), мой toggleClass работает так, как предполагается. Но как только я заполняю "href" URL-адресом, он больше не работает. Я подозреваю, что это потому, что страница обновлена? Но я совершенно новичок в JS. Если это проблема, как я могу обойти это? и если это не так, то что я сделал неправильно?
Итак, это мой текущий javascript с помощью jquery:
$(document).ready(function()
{
$('.button').click(function()
{
$('.buttonselected').removeClass('buttonselected');
$(this).toggleClass('buttonselected');
});
});
И это мой HTML-код:
<nav>
<ul>
<li>
<a class="button" href="?page=frontpage"> HOME </a>
</li>
</ul>
</nav>
В списке есть больше ссылок, но это не имеет значения для этого вопроса.
Да, я использую PHP include.
Кроме того, как я могу установить ссылку на "toggleClass", когда страница загружается так, что она получает этот класс, когда кто-то сначала входит на веб-сайт.
Спасибо вам за помощь!
Вы можете использовать event.preventDefault()
$('.button').click(function( event )
{
event.preventDefault(); // default action of the event will not be triggered.
$('.buttonselected').removeClass('buttonselected');
$(this).toggleClass('buttonselected');
});
РЕДАКТИРОВАТЬ:
Если вы хотите загрузить свою главную страницу (как в своей ссылке) и присвоить ей класс с "кнопочным выбором", чем вам нужно использовать PHP.
Что-то вроде этого
if( isset($_POST['page']) ){
$selectedPage = $_POST['page'];
}
Посмотреть
<a class="button <?php echo ($selectedPage=='frontpage')?' buttonselected':'' ?>" href="?page=frontpage"> HOME </a>
Ты прав. Класс уходит, потому что страница перезагружается. Если вам нужна конкретная ссылка, чтобы иметь определенный класс при загрузке страницы, вам нужно будет что-то сделать с этой ссылкой. Либо вручную поместите класс в ссылку с php, либо выделите его каким-либо другим способом, чтобы JavaScript мог его найти.
Если ссылка, которая должна иметь класс, отличается от того, на какой ссылке вы нажали ранее, вам нужно будет использовать файл cookie или localStorage для сохранения этой информации.
Еще лучше, вы должны попытаться выяснить способ передачи этой информации, которая не связана с перезагрузкой страницы. Это было бы идеально, так как в большинстве случаев пользователям не нравится перезагружать страницы, когда они этого не ожидают.
РЕДАКТИРОВАТЬ:
Ответ @pszaba велик, если вам не нужно использовать переменные строки запроса.