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

脚本:

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


但这似乎不起作用。。。。。。。请帮忙!

最佳答案

您是否尝试过用于文本输入的键盘输入?



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

07-24 09:31