Выполнить следующий код 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() { 
Другие вопросы по тегам