点击并摆脱占位符,模糊并再次添加占位符

时间:2015-10-08 22:10:15

标签: javascript jquery variables

$(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

1 个答案:

答案 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;
   })
});

http://jsfiddle.net/fcdcpxrr/2/