Я кодирую простую html-страницу с некоторым jQuery. У меня есть две ссылки, и я хочу изменить их стиль при нажатии. В частности, я хочу сделать клик с рамкой и без нее.
$('.unclicked').click(function (event) {
$('.clicked').removeClass('clicked').addClass('unclicked');
$(this).removeClass('unclicked').addClass('clicked');
});
<a href="1.html" class="clicked">1</a>
<a href="2.html" class="unclicked">2</a>
Спасибо за ваши предложения
Этот код работает только один раз, что означает, что когда я нажимаю на новый незарезанный элемент, он не меняет его класс.
Вы хотите использовать
$( document ).on( 'click', '.unclicked', function() {
//your code here
});
Это связано с тем, что вы уничтожаете элемент, к которому привязана функция, но не сообщаете ему, чтобы добавить его в новый элемент.
Используйте делегацию для живых событий...
$(document).on('click', '.unclicked', function (event) {
//....
}
Я бы добавил нейтральный класс ко всем ссылкам, к которым вы хотите привязать это поведение. Подобно:
<a href="1.html" class="clickable">1</a>
<a href="2.html" class="clickable">2</a>
Затем используйте функцию toggleClass
.
$('.clickable')
// Before any are clicked, set the class to unclicked
.addClass('unclicked')
.on('click', function () {
// This automatically removes and adds based on what already present.
$(this).toggleClass('unclicked clicked');
});