jQuery delegates with plugins

2019-05-13 18:53发布

问题:

jQuery delegates are great, especially when using with table row click events.

I was wondering if it's possible to use delegates with plug-ins as well?

For example if I attach elastic plug-in to every text area, I would do:

$("textarea").elastic();

But how would I attach this plug-in using delegate?

回答1:

You can cheat. Well, you can in this instance.

You need a delegate-able event that will always occur before the plugin needs to be applied and some means of knowing whether or not it already has been. You can always add that yourself though.

Assuming you are on about this plugin:

http://www.unwrongest.com/projects/elastic/

then, since you always have to focus a textarea before typing/pasting into it, you can do this:

$('textarea').live( 'focus', function(){
   if( !$(this).data('iselastic') )
      $(this).data('iselastic', true).elastic();
})

I'm assuming you're running jQuery 1.4 at least.



回答2:

Its really up to the plugin author to write the plugin to utilize event delegation. Live and delegate won't work in applying a plugin.