我想知道是否有一个jQuery插件可以在文本框中显示提示,当它是空的时候。
我发现的是:http://remysharp.com/2007/01/25/jquery-tutorial-text-box-hints/。但是,这只是作为placeholder HTML5属性。我正在寻找的是一个插件,它显示了多个提示和衰落,就像在http://www.wolframalpha.com/上一样。(编辑:,我指的是文本框中的灰色文本,而不是工具提示。)
虽然自己创建它可能不会有太大的麻烦,但我不赞成重新发明轮子的理论--那么有人知道这样的插件是否已经可用了吗?
谢谢。
发布于 2011-03-25 22:07:05
我自己编了一个,所以它完全符合我的需要:http://jsfiddle.net/42t6R/2/。
很简单,但效果很好。
编辑:新版本有较少的bug,为什么不提交它作为一个插件:)
http://plugins.jquery.com/project/fadehints
(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"
]);
});发布于 2011-03-25 16:26:04
发布于 2011-03-25 16:30:08
嘿,primvdb,这呢?
https://stackoverflow.com/questions/5435195
复制相似问题