blob: a4753b992c031445c7690b040253147f2ddf0d91 (
plain)
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
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
|
/**
* Utility functions for jazzing up HTMLForm elements
*/
( function ( $ ) {
/**
* jQuery plugin to fade or snap to visible state.
*
* @param boolean instantToggle (optional)
* @return jQuery
*/
$.fn.goIn = function ( instantToggle ) {
if ( instantToggle === true ) {
return $(this).show();
}
return $(this).stop( true, true ).fadeIn();
};
/**
* jQuery plugin to fade or snap to hiding state.
*
* @param boolean instantToggle (optional)
* @return jQuery
*/
$.fn.goOut = function ( instantToggle ) {
if ( instantToggle === true ) {
return $(this).hide();
}
return $(this).stop( true, true ).fadeOut();
};
/**
* Bind a function to the jQuery object via live(), and also immediately trigger
* the function on the objects with an 'instant' parameter set to true
* @param callback function taking one parameter, which is Bool true when the event
* is called immediately, and the EventArgs object when triggered from an event
*/
$.fn.liveAndTestAtStart = function ( callback ){
$(this)
.live( 'change', callback )
.each( function ( index, element ){
callback.call( this, true );
} );
};
// Document ready:
$( function () {
// Animate the SelectOrOther fields, to only show the text field when
// 'other' is selected.
$( '.mw-htmlform-select-or-other' ).liveAndTestAtStart( function ( instant ) {
var $other = $( '#' + $(this).attr( 'id' ) + '-other' );
$other = $other.add( $other.siblings( 'br' ) );
if ( $(this).val() === 'other' ) {
$other.goIn( instant );
} else {
$other.goOut( instant );
}
});
});
}( jQuery ) );
|