$(document.ready(function () {
var input = $("input:text");
// This is where I want to add an attribute that never changes.
static var inputPlaceholder = input.attr("placeholder");
for (var i = 0; i < input.length; i++) {
$(this).click(function () {
$(this).attr("placeholder", "")
});
$(this).blur(function () {
$(this).attr("placeholder", inputPlaceholder)
});
}
});
基本上,我想要一些通用的东西,在点击时摆脱占位符并在模糊时摆脱它。 (通用,我的意思是我放在页面上的每一个文本输入。我想知道如何这样做。代码中的&#34;静态&#34;不是真的;我把它放入因为我没有知道真正的方法。谢谢。
-Zooza
答案 0 :(得分:0)
如果要在键入firs字符后隐藏占位符,则可以使用CSS:
:focus::-webkit-input-placeholder {
opacity:0;
}
:focus::-moz-placeholder {
opacity:0;
}
:focus:-ms-input-placeholder {
opacity:0;
}
http://jsfiddle.net/fcdcpxrr/1/
关于您提出的基于jQuery的解决方案:您不需要静态或常量,您可以将旧占位符存储在焦点上的另一个属性中并在模糊时恢复:
$(function(){
$('input').on('focus', function(){
this._placeholder = this.getAttribute('placeholder');
this.placeholder = '';
}).on('blur', function(){
this.placeholder = this._placeholder;
})
});