jQuery delegates with plugins

2019-05-13 19:06发布

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?

2条回答
太酷不给撩
2楼-- · 2019-05-13 19:30

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.

查看更多
Melony?
3楼-- · 2019-05-13 19:42

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.

查看更多
登录 后发表回答