Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

jquery .sortable() on <div>

I am trying to let user sort this kind of markup

<div id="steps">    <div class="sort">        <span></span>        <textarea/>    </div>    <div class="sort">        <span></span>        <textarea/>    </div>    <div class="sort">        <span></span>        <textarea/>    </div>    <div class="sort">        <span></span>        <textarea/>    </div> </div> 

And i am trying like this:

$('.sort').sortable({placeholder: "ui-state-highlight",helper:'clone'}).disableSelection(); 

But i am getting very unexpected behavior, please check:

http://jsfiddle.net/GA4Qs/8/

how can i do it to only let user sort by the step number? (but sort the whole item as a block)

like image 540
Toni Michel Caubet Avatar asked Mar 11 '12 23:03

Toni Michel Caubet


People also ask

How to make div sortable in jQuery?

jQuery sortable needs to be applied to the parent element containing the elements you want to be sorted. $('#psP'). sortable({placeholder: "ui-state-highlight",helper:'clone'}); Also you didn't close your divs in the right place.

How to use sortable in jQuery?

jQueryUI Sortable. jQueryUI sortable() method is used to re-order elements in the list or grid form, by using the mouse. The sorting ability of this method is based on an operation string passed as the first parameter.

What is sortable js?

Sortable JS is a Javascript library that enables you to sort lists by dragging and dropping list items. It also supports Javascript frameworks such as Meteor, AngularJS, React, Vue and Ember.


1 Answers

I believe the following fiddle is what you're after: http://jsfiddle.net/GA4Qs/13/

jQuery sortable needs to be applied to the parent element containing the elements you want to be sorted.

$('#psP').sortable({placeholder: "ui-state-highlight",helper:'clone'}); 

Also you didn't close your divs in the right place.

<div style="position: relative;" class="sortable">         <span class="stepNum inset">1</span>         <textarea placeholder="Escribe que hay que hacer en este paso" class="step valid"></textarea> </div> 

Not

<div style="position: relative;" class="sortable">         <span class="stepNum inset">1</span>         <textarea placeholder="Escribe que hay que hacer en este paso" class="step valid"></textarea> <div style="position: relative;" class="sortable"> 
like image 130
Leonard Garvey Avatar answered Sep 22 '22 09:09

Leonard Garvey