jquery.overlabel_wev8.js
1.37 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
( function( $ ) {
// plugin definition
$.fn.overlabel = function( options ) {
// build main options before element iteration
var opts = $.extend( {}, $.fn.overlabel.defaults, options );
var selection = this.filter( 'label[for]' ).map( function() {
var label = $( this );
var id = label.attr( 'for' );
var field = document.getElementById( id );
if ( !field ) return;
// build element specific options
var o = $.meta ? $.extend( {}, opts, label.data() ) : opts;
label.addClass( o.label_class );
var hide_label = function() { label.css( o.hide_css ) };
var show_label = function() { this.value || label.css( o.show_css ) };
$( field )
.parent().addClass( o.wrapper_class ).end()
.focus( hide_label ).blur( show_label ).each( hide_label ).each( show_label );
return this;
} );
return opts.filter ? selection : selection.end();
};
// publicly accessible defaults
$.fn.overlabel.defaults = {
label_class: 'overlabel-apply',
wrapper_class: 'overlabel-wrapper',
hide_css: { 'text-indent': '-10000px' },
show_css: { 'text-indent': '0px', 'cursor': 'text' },
filter: false
};
} )( jQuery );