Выполнить следующий код jquery при изменении меню выбора
У меня есть несколько текстовых полей, которые отображаются / скрываются в меню выбора. Когда это происходит, скрипт, который отслеживает значения текстовых полей на предмет изменений, не запускается правильно. По некоторым причинам это не замечает изменения.
сценарий:
var somethingChanged = false;
$(document).ready(function(){
$('input, select').change(function() {
somethingChanged = true;
console.log($(this).attr('name')+ ' has changed');
$('input[class*=input]').focus(function () {
if ($(this).hasClass('left')) {
$(this).parent().addClass("lightOverlay");
console.log($(this).attr('name')+ ' added lightOverlay');
}
}).blur(function () {
if (this.value == ''){
$(this).parent().removeClass('lightOverlay')
console.log($(this).attr('name')+ ' removed lightOverlay');
}
})
$('input[class*=input]').focus(function () {
if ($(this).hasClass('right')) {
$(this).parent().addClass("lightOverlayRight");
console.log($(this).attr('name')+ ' added lightOverlayRight');
}
}).blur(function () {
if (this.value == ''){
$(this).parent().removeClass('lightOverlayRight')
console.log($(this).attr('name')+ ' removed lightOverlayRight');
}
})
})
});
Как я могу выполнить этот код при изменении меню выбора?
вот этот сайт с полным кодом: http://2plygraphics.com/im-here/
на сайте вы увидите, что если вы добавите значения к 3 именам, а затем установите для них 7 имен, то имена справа не будут правильно применять фоновое изображение, пока вы не нажмете на них... Я хотел бы получить код проверьте изменение меню выбора и обновите фон соответствующим образом.
Я хотел бы изменить его на что-то вроде этого (в основном обернуть все это в функцию, которая вызывается при нажатии меню выбора):
var somethingChanged = false;
$(document).ready(function(){
$('select').click (function () {
$('input, select').change(function() {
somethingChanged = true;
console.log($(this).attr('name')+ ' has changed');
$('input[class*=input]').focus(function () {
if ($(this).hasClass('left')) {
$(this).parent().addClass("lightOverlay");
console.log($(this).attr('name')+ ' added lightOverlay');
}
}).blur(function () {
if (this.value == ''){
$(this).parent().removeClass('lightOverlay')
console.log($(this).attr('name')+ ' removed lightOverlay');
}
})
$('input[class*=input]').focus(function () {
if ($(this).hasClass('right')) {
$(this).parent().addClass("lightOverlayRight");
console.log($(this).attr('name')+ ' added lightOverlayRight');
}
}).blur(function () {
if (this.value == ''){
$(this).parent().removeClass('lightOverlayRight')
console.log($(this).attr('name')+ ' removed lightOverlayRight');
}
})
})
});
});
но это не похоже на работу.... Нуб центральный здесь!!! пожалуйста помоги!
1 ответ
Вы пробовали keyup для ввода текста?
пример
$('input[type=text]').keyup(function() {