选择菜单更改时执行以下jquery代码

时间:2014-04-16 22:35:45

标签: javascript jquery html css select-menu

我有一些文本字段可以通过选择菜单显示/隐藏。发生这种情况时,监视文本字段值以进行更改的脚本不会正确触发。由于某种原因,它没有注意到变化。

脚本:

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个名称,则右侧的名称不会正确应用背景图像,直到您点击它们为止...我&#39 ; d喜欢在选择菜单上检查代码并相应地更新背景。

我想把它改成这样的东西(基本上将整个东西包裹在单击选择菜单时调用的函数中):

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'); 
    }
})
})
    });
}); 

但这似乎没有用...... Noob中央在这里!!!请帮忙!

1 个答案:

答案 0 :(得分:0)

您是否尝试过textinput的keyup?

例如

$('input[type=text]').keyup(function() {