//****c* XTools/XEvents
// NAME
// XEvents
//
// DESCRIPTION
// Configura uma ação a ser executada quando ocorrer um determinado evento em um objeto.
//
// AUTHOR
// Rodrigo Souza dos Santos
// |html
rodrigo.souza@celepar.pr.gov.br
// |html
rodrigosouzadossantos@gmail.com
//
//******
// You can use this space for remarks that should not be included
// in the documentation.
//
( function( )
{
//****im* XEvents/config
// NAME
// config
//
// DESCRIPTION
// Configura ( adiciona ou remove ) uma ação a um objeto ( node ).
//
// SYNOPSIS
function config( pObj, pEvent, pHandler )
// INPUTS
// pObj :
// pEvent :
// pHandler :
//
// SOURCE
{
if ( typeof pObj == 'object' )
{
if ( pEvent.substring( 0, 2 ) == 'on' )
pEvent = pEvent.substring( 2, pEvent.length );
if ( arguments.length == 3 )
{
if ( pObj.addEventListener )
pObj.addEventListener( pEvent, pHandler, false );
else if ( pObj.attachEvent )
pObj.attachEvent( 'on' + pEvent, pHandler );
( arguments[ 0 ].preventDefault ) ?
arguments[ 0 ].preventDefault( ) : arguments[ 0 ].returnValue = false;
}
else if ( arguments.length == 4 )
{
if ( pObj.removeEventListener )
pObj.removeEventListener( pEvent, pHandler, false );
else if ( pObj.detachEvent )
pObj.detachEvent( 'on' + pEvent, pHandler );
}
}
}
//
// NOTES
// Ações anônimas não podem ser removidas
//
//******
//****m* XEvents/add
// NAME
// add
//
// DESCRIPTION
// Adiciona uma ação a um objeto ( node ).
//
// SYNOPSIS
function add( pObj, pEvent, pHandler )
// INPUTS
// pObj :
// pEvent :
// pHandler :
//
{
config( pObj, pEvent, pHandler );
}
//
// NOTES
// Ações anônimas não podem ser removidas
//
// EXAMPLE
// function myHandler( )
// {
// /*do something*/
// }
//
// XEvents.add( node, 'onclick', myHandler );
//
// XEvents.add( node, "onclick", function( )
// {
// /*do something*/
// } );
//
//******
//****m* XEvents/remove
// NAME
// remove
//
// DESCRIPTION
// Remove a ação de um objeto ( node ).
//
// SYNOPSIS
function remove( pObj, pEvent, pHandler )
// INPUTS
// pObj :
// pEvent :
// pHandler :
//
{
config( pObj, pEvent, pHandler, true );
}
//
// NOTES
// Ações anônimas não podem ser removidas
//
// EXAMPLE
// XEvents.remove( node, 'onclick', myHandler );
//
//******
function Events( )
{
}
Events.prototype.add = add;
Events.prototype.remove = remove;
window.XEvents = new Events;
} )( );