%PDF- %PDF-
| Direktori : /home/gachan/www/wp-content/plugins/meta-box/js/ |
| Current File : /home/gachan/www/wp-content/plugins/meta-box/js/select.js |
jQuery( function ( $ )
{
'use strict';
/**
* Object stores all necessary methods for select All/None actions
* Assign to global variable so we can access to this object from select advanced field
*/
var select = window.rwmbSelect = {
/**
* Select all/none for select tag
*
* @param $input jQuery selector for input wrapper
*
* @return void
*/
selectAllNone: function ( $input )
{
var $element = $input.find( 'select' );
$input.on( 'click', '.rwmb-select-all-none a', function ( e )
{
e.preventDefault();
if ( 'all' == $( this ).data( 'type' ) )
{
var selected = [];
$element.find( 'option' ).each( function ( i, e )
{
var $value = $( e ).attr( 'value' );
if ( $value != '' )
{
selected.push( $value );
}
} );
$element.val( selected ).trigger( 'change' );
}
else
{
$element.val( '' );
}
} );
},
/**
* Add event listener for select all/none links when click
*
* @param $el jQuery element
*
* @return void
*/
bindEvents: function ( $el )
{
var $input = $el.closest( '.rwmb-input' ),
$clone = $input.find( '.rwmb-clone' );
if ( $clone.length )
{
$clone.each( function ()
{
select.selectAllNone( $( this ) );
} );
}
else
{
select.selectAllNone( $input );
}
}
};
/**
* Update select field when clicking clone button
*
* @return void
*/
function update()
{
select.bindEvents( $( this ) );
}
// Run for select field
$( ':input.rwmb-select' ).each( update );
$( '.rwmb-input' ).on( 'clone', ':input.rwmb-select', update );
} );