首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >是否有用于褪色文本框提示的jQuery插件?

问是否有用于褪色文本框提示的jQuery插件?
EN

Stack Overflow用户
提问于 2011-03-25 16:22:19
回答 4查看 1.3K关注 0票数 5

我想知道是否有一个jQuery插件可以在文本框中显示提示,当它是空的时候。

我发现的是:http://remysharp.com/2007/01/25/jquery-tutorial-text-box-hints/。但是,这只是作为placeholder HTML5属性。我正在寻找的是一个插件,它显示了多个提示和衰落,就像在http://www.wolframalpha.com/上一样。(编辑:,我指的是文本框中的灰色文本,而不是工具提示。)

虽然自己创建它可能不会有太大的麻烦,但我不赞成重新发明轮子的理论--那么有人知道这样的插件是否已经可用了吗?

谢谢。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2011-03-25 22:07:05

我自己编了一个,所以它完全符合我的需要:http://jsfiddle.net/42t6R/2/。

很简单,但效果很好。

编辑:新版本有较少的bug,为什么不提交它作为一个插件:)

http://plugins.jquery.com/project/fadehints

http://jsfiddle.net/9rgHg/2/

代码语言:javascript
复制
(function( $, undefined ) {

    $.fn.fadehints = function( data, speed ) {
        var i = 0;
        var $this = $( this );
        var offset = $this.offset();
        var $input = $("<input>").css( "position",          "absolute"                 )
                                 .css( "left",              offset.left                )
                                 .css( "top",               offset.top                 )
                                 .css( "background-color",  "transparent"              )
                                 .css( "color",             "gray"                     )
                                 .css( "border",            0                          )
                                 .css( "padding",           2                          )
                                 .css( "font-size",         $this.css( "font-size"   ) )
                                 .css( "font-family",       $this.css( "font-family" ) );

        var $parent = $this.parent();
        var $div = $( "<div>" ).append( $this.detach(), $input );

        var change = function() {
            if( i >= data.length ) {
                i = 0;
            }
            $input.hide().val( data[i] ).fadeIn( 1000 );
            i++;
        };

        $this.bind( "focus keydown", function(e) {
            if( !( e.bubbles == null ) ) { // Only clear if event was triggered by user
                window.clearInterval( interval );
                $input.hide();
            }
        } );

        $input.bind( "click focus", function() {
            window.clearInterval( interval );
            $this.focus(); // $this === the real textbox
            $( this ).hide(); // $(this) === the overlap textbox
        } );

        $this.click( function() {
            $input.hide();
            window.clearInterval( interval );
        } );

        $this.blur( function() {
            window.clearInterval( interval );
            if( $this.val() === "" && $this[0] !== document.activeElement ) {
                if( !$input.is(":visible")) {
                change();
                }
                interval = window.setInterval( change, speed );
            }
        } );
        $parent.append( $div );

        change(true);
        var interval = window.setInterval( change, speed );


        return $this;
    };

})(jQuery);

$(function() {
    $('#tb').fadehints([
        "test1", "test2"
    ]);
});
票数 1
EN

Stack Overflow用户

发布于 2011-03-25 16:26:04

Stack Overflow用户

发布于 2011-03-25 16:30:08

嘿,primvdb,这呢?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5435195

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档