It is true that jQuery can already handle custom events quite well. This is more for normalizing existing events and enabling the usage of the bind syntax.
--
Brandon Aaron
<div><span class="gmail_quote">
On 6/7/07, <b class="gmail_sendername">SeViR</b> <<a href="mailto:sevir1@gmail.com">
sevir1@gmail.com</a>> wrote:</span><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
With jQuery is very simple make new event plugins. This is a sample
plugin that I made
for my organisation: (sorry comments in spanish :$)
/**
* @fileoverview
* Crea nuevos eventos para la pulsación de las teclas:
* INTRO, DELETE, ARROWS, PAGINA arriba y abajo
*
* @author ATICA
* @version 0.1
* @requires jQuery.js
*/
jQuery.fn.extend({
/**
* Evento para la pulsación de la tecla Intro
* @param {function} función a ejecutar en el evento
*/
intropress: function(f){
$(this).bind("intropress",f);
$(this).keydown(function(e){
if(e.keyCode==13
){ $(this).trigger("intropress");}
});
return this;
},
/**
* Evento para la pulsación de la tecla Suprimir
* @param {function} función a ejecutar en el evento
*/
deletepress: function(f){
$(this).bind("deletepress",f);
$(this).keydown(function(e){
if(e.keyCode==46){ $(this).trigger("deletepress");}
});
return this;
},
/**
* Evento para la pulsación de la tecla flecha izquierda
* @param {function} función a ejecutar en el evento
*/
leftpress: function(f){
$(this).bind("leftpress",f);
$(this).keydown(function(e){
if(e.keyCode==37){ $(this).trigger("leftpress");}
});
return this;
},
/**
* Evento para la pulsación de la tecla flecha derecha
* @param {function} función a ejecutar en el evento
*/
rightpress: function(f){
$(this).bind("rightpress",f);
$(this).keydown(function(e){
if(e.keyCode==39
){ $(this).trigger("rightpress");}
});
return this;
},
/**
* Evento para la pulsación de la tecla flecha arriba
* @param {function} función a ejecutar en el evento
*/
uppress: function(f){
$(this).bind("uppress",f);
$(this).keydown(function(e){
if(e.keyCode==38){ $(this).trigger("uppress");}
});
return this;
},
/**
* Evento para la pulsación de la tecla flecha abajo
* @param {function} función a ejecutar en el evento
*/
downpress: function(f){
$(this).bind("downpress",f);
$(this).keydown(function(e){
if(e.keyCode==40){ $(this).trigger("downpress");}
});
return this;
},
/**
* Evento para la pulsación de la tecla página abajo
* @param {function} función a ejecutar en el evento
*/
pagedownpress: function(f){
$(this).bind("pagedownpress",f);
$(this).keydown(function(e){
if(e.keyCode==34
){ $(this).trigger("pagedownpress");}
});
return this;
}, /**
* Evento para la pulsación de la tecla página arriba
* @param {function} función a ejecutar en el evento
*/
pageuppress: function(f){
$(this).bind("pageuppress",f);
$(this).keydown(function(e){
if(e.keyCode==33){ $(this).trigger("pageuppress");}
});
return this;
},
});
Brandon Aaron escribió:
> I recently created an plugin/extension for jQuery to use the following
> syntax for binding events.
>
> $('input').bind('mouseover focus', fn);
>
> So you can bind multiple event types to the same function quickly. It
> also applies to .one and .unbind.
>
> However, this got me thinking about writing a plugin that would allow
> us to add new event types ... like mouseenter and mouseleave. So
> instead of using .hover, you could do this:
>
> $(...).bind('mouseenter', fn);
>
> or
>
> $(...).bind('mouseenter', fn1).bind('mouseenter', fn2);
>
> or
>
> $(...).unbind('mouseenter', fn1);
>
> or
>
> $(...).trigger('mouseenter');
>
> etc...
>
>
> So I'm curious about what the jQuery community thinks about this idea?
> I've built out a proof-of-concept but it is by no means production
> ready. You can see it in action here:
> <a href="http://www.brandonaaron.net/jquery/plugins/events_extension/test/test.html">
http://www.brandonaaron.net/jquery/plugins/events_extension/test/test.html</a>
>
> We could also hook up the mousewheel event in the same way.
>
> $(...).bind('mousewheel', fn);
>
> Are there other events that could be added/normalized with this plugin?
>
>
>
> BTW ... Here is the blog post about binding multiple event types:
> <a href="http://blog.brandonaaron.net/2007/06/05/bind-multiple-events-simultaneously-with-jquery/">
http://blog.brandonaaron.net/2007/06/05/bind-multiple-events-simultaneously-with-jquery/</a>
> <<a href="http://blog.brandonaaron.net/2007/06/05/bind-multiple-events-simultaneously-with-jquery/">
http://blog.brandonaaron.net/2007/06/05/bind-multiple-events-simultaneously-with-jquery/</a>>>
> --
> Brandon Aaron
>
--
Best Regards,
José Francisco Rives Lirola <sevir1ATgmail.com>
SeViR CW · Computer Design
<a href="http://www.sevir.org">
http://www.sevir.org</a> Murcia - Spain
</blockquote></div>