2016-04-28 2 views
0

Я пытаюсь удалить «скрытый» класс из сообщения при нажатии кнопки.JQuery навсегда не удаляет класс

$('#button').click(function() { 
    $('#error').removeClass('hidden'); 
}); 

Но это, похоже, работает только на фактический клик, а не после выпуска, как должно.

screenshot

Я только начал изучать JavaScript, я бы признателен за любую помощь в этом.

Если это не правильный способ сделать это, пожалуйста, предложите альтернативу :)

+3

Это невозможно ответить, так как JQuery действительно навсегда удалить класс. Я предполагаю, что кнопка в форме, и страница перезагружается? – adeneo

+1

Попробуйте опубликовать еще несколько кода или jsfiddle вашей проблемы. – lamp76

+0

Это просто элемент кнопки с id "#error" и класс "hidden", в css у меня есть отображение: hidden для .hidden class. Я запускаю скрипт, добавляя конец тела html. Браузер - хром. – SJ19

ответ

2

Ну кнопка по умолчанию отправляет форму. Если вы не хотите, чтобы он был отправлен, вам необходимо отменить его действие по умолчанию.

$('#button').click(function (evt) { 
    $('#error').removeClass('hidden'); 
    evt.preventDefault(); 
}); 
+0

Я бы транспонировал 2 строки и сначала предотвратил событие по умолчанию. Также может быть полезно добавить 'evt.stopPropagation();' –

+0

Или, альтернативно, определите кнопку как '

0

Так что мой вход здесь является то, что вы возвращаетесь обратно в коде где-то, как вы подаете (который будет обновляться и повторно ваш CSS «дисплей: скрытый»), или вы, возможно, вызывая другую функцию, повторное класс «скрытый»

$('#button').click(function (evt) { 
    evt.preventDefault(); 
    evt.stopPropagation(); 
    $('#error').removeClass('hidden'); 
}); 

https://jsfiddle.net/8jws4cx6/

Смежные вопросы