I have an application with a long list that changes frequently, and I need the items of that list to be draggable.
I've been using the jQuery UI draggable plugin, but it is slow to add to 400+ list items, and has to be re-added every time new list items are added.
Does anyone know of a plugin similar to the jQuery UI draggable plugin that uses jQuery 1.3's .live()
events? This would solve both problems.
You could make wrapper function like this:
(I use prototype with jQuery - that's why i placed jQuery() instead of $())
And now instead of $(selector).draggable({opts}) use liveDraggable(selector, {opts})
This is a sample of code that perfectly worked for me
An updated version that does not use live as it is deprecated:
Combining the best answers from @john and @jasimmk:
Using
.live
:.live
is deprecated though, better to use.on
:As @john explained,
.ui-draggable
is automatically added to draggable methods, so by excluding that class with the selector, you ensure that draggable() will only be called once on each element. And using.on
will reduce the scope of the selector, improving performance.JSFiddle
An old question. But threedubmedia has drag and drop plugin with live (as of v 1.7 known as simply "on") support. http://threedubmedia.com/code/event/drop Haven't used it to much so I can't account for it performance, etc. but looks reasonable.