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