JQuery обнаружить изменения в назначении класса
Кто-нибудь знает способ обнаружить, когда класс данного элемента изменился с помощью JQuery?
Я использую "просто счетный" плагин JQuery для уведомления пользователя о количестве символов, введенных в текстовую область. Когда пользователь превышает допустимое количество символов, я хотел бы отключить кнопку "пост".
Так как просто счетное изменение назначенного класса CSS при достижении предела, моя идея заключалась в том, чтобы захватить это событие, чтобы я мог отключить кнопку отправки, но, возможно, есть лучший способ?
Любые предложения приветствуются.
Благодарю.
6 ответов
Вы имеете в виду что-то подобное?
<script>
$("#myTextArea").change(function(){
var contentLength = $(this).val().length;
var charLimit = 500;
if(contentLength > charLimit){
$("#saveButton").attr("disabled","disabled");
}
});
</script>
<textarea id="myTextArea"></textArea>
<input type="submit" id="saveButton">
Предполагая, что вам нужно заблокировать элемент управления, чтобы не перехватывать изменение класса, вы можете просто переписать часть плагина, отвечающую за действие (добавление класса).
Вы можете иметь событие при нажатии клавиши или вверх (для текстовой области), которое проверяет, достигнуто ли максимальное количество символов, и запускает соответствующую логику.
$(textarea).keypress(function (e) {
if(getLetterCount() > 300){
$(postButton).css('disabled', 'true');
else
$(postButton).css('disabled', 'false');
}
});
Там нет такого события. Что вам нужно сделать, это настроить плагин, чтобы соответствовать вашим потребностям.
Иди посмотри код. Везде это называет addClass(options.overClass)
Вы должны отключить свою кнопку. Везде это называет addClass(options.safeClass)
вам нужно включить вашу кнопку. Просто.
Я не знаю ничего, что в настоящее время существует, но вы могли бы написать плагин для jQuery, который запускает пользовательское событие всякий раз, когда имя класса изменяется (через jQuery).