Drag and Drop Element Coordinates


If you're using draggable_element, you'll give it a name. For
instance, if you had a big grid, you could use this for every x and y
<%= draggable_element "location_1_1", :revert => true %>

This would be the draggable_element:
<div id="location_1_1">Drag Me</div>

You can use the same element as a receiver that responds with an
action when a draggable_element is dropped onto it:
<%= drop_receiving_element "location_1_1", :url => { :action =>
"update_location", :new_x => 1, :new_y => 1} %>

Then you can handle assigning the dragged (new) to dropped spot (old).
  def update_location
    div, @oldrow, @oldslot = params[:id].split("_")
    @newrow, @newslot = params[:newrow], params[:newslot]
    @newloc = Location.find_by_row_and_slot(@newrow, @newslot)
    # do a page.redirect_to or page.update so show the updates we just

I've used this for about a year and it's pretty handy.

Hope this helps! Let me know if you have any questions.

  -- Wes

Hmm, looking through my old code, I had two separate divs, one to drag
and one to receive.
So, that's the way I had it working. That said, I don't know if the a
single one doing both won't work, it's just not the way I did it

  -- Wes