Método one
El método one permite agregar un manejador
de eventos a un elemento. Después de que el evento
se active una vez, el manejador será
eliminado automáticamente.
Sintaxis
Así es como adjuntamos un manejador de eventos a un elemento,
como primer parámetro en forma de cadena
se pasa uno o más eventos separados por
espacios, como segundo - pasamos datos en forma de objeto JavaScript,
que se pasan al manejador en la propiedad
event.data cuando se activa el evento. El segundo parámetro
es opcional. Como tercero pasamos la función manejadora,
a la cual se le pasa el objeto evento o pasamos false:
$(selector).one(eventos, [datos], función-manejadora(objeto evento));
Se puede pasar como segundo parámetro un selector
filtrador adicional de descendientes dentro del elemento,
como tercero - datos adicionales, que se pasan
al manejador en la propiedad event.data cuando
se activa el evento. El segundo y tercer parámetros
son opcionales. Como cuarto pasamos
la función-manejadora, a la cual se le pasa el objeto evento
y parámetros adicionales opcionales. Si en lugar de
la función-manejadora se pasa false, entonces la función simplemente
devolverá false:
$(selector).one(eventos, [selector], [datos], función-manejadora(objeto evento));
Se puede utilizar el método one de otra manera,
entonces en el primer parámetro se pasa
un objeto JavaScript, donde las claves - el tipo de evento, y
los valores - la función-manejadora, que añadimos al
elemento:
$(selector).one({'tipo de evento': handler}, [selector], [datos]);
Si no pasamos un selector adicional, entonces el evento se activa en el elemento al que adjuntamos el manejador, en caso contrario - en el elemento descendiente, que coincide con ese selector (eventos delegados).
Ejemplo
Al hacer clic en el párrafo mostremos los datos que
pasamos al método one. En clics posteriores
no pasará nada. Utilicemos la
función-manejadora testFunc,
que creamos:
<p>click</p>
function testFunc(event) {
alert(event.data.text);
}
$('p').one('click', {text: 'aaa' }, testFunc);