我有一个jquery函数,它在焦点上发生在给定类的所有输入上。除非应用它,它才能很好地工作,它适用于该类的所有输入。如何仅将该功能应用于触发操作的功能?
请参阅我的JSFiddle
(点击日期时,所有这些都清除。另外如果您输入1,则另一个不会返回默认提示)
非常感谢您的帮助。
答案 0 :(得分:4)
使用$(this)
$('.inputDay').focus(function() {
if ($(this).val() == "dd") {
$(this).val("").css("color", "#000000");
}
});
工作示例:http://jsfiddle.net/sv9uZ/3/(我修复了其他代码以使用链接)
编辑:要避免每次调用$(this)
(因为我们使用多次),我们可以将其存储到本地变量并使用它。感谢Mathletics提出来。
$('.inputDay').focus(function() {
var item=$(this);
if (item.val() == "dd") {
item.val("").css("color", "#000000");
}
});
答案 1 :(得分:1)
只需说$(this).val< - 而不是使用类。这仅适用于当前的
提供课程名称将适用于所有匹配的课程。相反,这样做只适用于当前修改过的
答案 2 :(得分:1)
我知道这已经得到了回答,但一般来说,当我这样做时,我会将我想要灰色的值存储在输入的title属性中,这样可以减少一些代码并执行:
$(document).ready(function() {
$('.inputDay, .inputYear').focus(function(e){
$this = $(this);
$this.val() == $this.attr('title') ? $this.val('') : '';
$this.css("color", "#000");
}).blur(function(){
$this = $(this);
if(!$this.val().length){
$this.val($this.attr("title")).css("color", "#999");
}
});
$('.inputDay, .inputYear').trigger('blur');
});
这样您就不必将函数绑定到任何特定值,例如“dd”或“yyyy”,以便可以重复使用。