混淆了简单变量声明,jQuery的"$variable"与javascript的"var"之间的区别。
混淆了简单变量声明,jQuery的"$variable"与javascript的"var"之间的区别。
我有一个简单的幽灵文本实现:
HTML代码:
jQuery代码:
$(document).ready(function(){ $txtField = "#searchPanel form input.ghText"; var value = $($txtField).val(); $($txtField).focus(function(){ if($(this).val() == value) $(this).val("").removeClass("ghText"); }); $($txtField).blur(function(){ if($(this).val()==""){ $(this).val(value).addClass("ghText"); } }); });
上面的示例不会工作。当用户将光标聚焦在搜索栏上时,由于某种原因,类"ghText"不会被移除。
然而,如果我将"var value"(变量初始化)和"value"改为"$value",如下所示:
$value = $($txtField).val(); $(this).val($value).removeClass("ghText"); $(this).val($value).addClass("ghText");
一切都完美地运行。
我可以放心地睡觉,不用太担心它...但我非常好奇为什么会发生这种情况?
是因为"this"没有引用正确的对象,还是因为我试图将jQuery对象存储在非jQuery变量中,或者是其他原因...有人能指出我错在哪里吗?我一直以为"var x"和"$x"是一样的...