AshesOfOwls / jquery.shapeshift

A dynamic grid system with drag and drop functionality.
http://ashesofowls.github.com/jquery.shapeshift/
MIT License
1.67k stars 311 forks source link

Capturing positions by ID #48

Closed GiovaneBueno closed 11 years ago

GiovaneBueno commented 11 years ago

I'm in doubt about, catch all elements by "id" in the order they are and move on to an array. And do it at an event after an item has been changed of position.

GiovaneBueno commented 11 years ago

No answer?

AshesOfOwls commented 11 years ago

Hey sorry I've been a little busy with work lately. If I understand you correctly you want to get the index position of each item after it has been arranged. To do so you will need to listen for the arrange event which is outlined in the documentation here

Basically you will have to listen for that arrange event on the parent container by doing this:

$containers.on("ss-arranged", function(e) { 
  ...
});

Now every time the children get arranged within the container the code inside that function will run. You can get the index positions of the children by doing this:

$containers.on("ss-arranged", function(e) { 
  $(this).children().each(function() {
    $(this).index(); // Returns the index position.
  });
});

Hope that helps, let me know if you have any additional questions.

GiovaneBueno commented 11 years ago

What you showed on example, works. But I used "ss-drop-complete". Yet it is with index, there is no way to capture the "id" of each element?

Ex:

<div id="content">
      <div id="div1"></div>
      <div id="div2"></div>
      <div id="div3"></div>
</div>

Returning: "div1","div2","div3".

I ask sorry, for the inconvenience..

Tank's.

AshesOfOwls commented 11 years ago

Ohh sorry you meant the literal ID. It would still work the same, except now you would do:

$containers.on("ss-arranged", function(e) { 
  $(this).children().each(function() {
    $(this).index(); // Returns the index position
    $(this).attr("id"); // Returns the ID of the child
  });
});
GiovaneBueno commented 11 years ago

Thank you for your attention, solved my doubt!