jquery - change class name when dragged and dropped and vice versa - jqueryUI -


i'm using jqueryui drag/drop list items 1 list sortable list. there anyway can change class of dropped item 'sortedli' 'droppedli' when dropped all-colls-list sortable list coll-selected-list , vice versa? when drop it, retains original class name.

$(function() {     var lists = [{"listid":"#all-colls-list", "connectid":"#coll-selected-list", "drop":true},      {"listid":"#coll-selected-list", "connectid":"#all-colls-list", "drop":true}];      $.each(lists, function(i, list) {         $(list.listid).sortable({             connectwith: list.connectid,             droponempty: list.drop         });     }); });  <ul id="all-colls-list" class="droptrue ui-sortable">                 <li class="sortedli">ahsbah</li>                 <li class="sortedli">bachs</li>                 <li class="sortedli">stah</li> </ul>   <ul id="coll-selected-list" class="droptrue ui-sortable">               <li class="sortedli" style="">blah</li>               <li class="sortedli" style="">blah</li>               <li class="sortedli" style="">blah</li> </ul> 

here complete solution changing class when on drag , drop events occurred using jquery ui.

html:

<ul id="all-colls-list" class="droptrue ui-sortable">   <li class="sortedli">       ahsbah   </li>   <li class="sortedli">       bachs   </li>   <li class="sortedli">       stah   </li> </ul>  <ul id="coll-selected-list" class="droptrue ui-sortable">   <li class="sortedli" style="">       blah   </li>   <li class="sortedli" style="">        blah   </li>   <li class="sortedli" style="">       blah   </li> </ul> 

css:

#all-colls-list{    display:inline-block;    width:200px;    border:1px solid #331299;    background-color:#1177a8;    height:auto; }  #coll-selected-list{    display:inline-block;    width:200px;    border:1px solid #331299;    background-color:#a14466;    height:auto; } #all-colls-list li, #coll-selected-list li{    list-style:none; } #all-colls-list li:hover, #coll-selected-list li:hover{    cursor:move;    border:2px solid #a1b177; }  .dropped{    background-color:#2277a7; } .sorted{    background-color:#a74455; } 

jquery:

var lists = [{               "listid": "#all-colls-list",               "connectid": "#coll-selected-list"             }, {               "listid": "#coll-selected-list",               "connectid": "#all-colls-list"            }];   //apply sort on each list   $.each(lists, function(i, list) {           $(list.listid).sortable({              connectwith: list.connectid,              opacity: 0.7,              start: function(event, ui) {                  if ($(ui.item).parents('#all-colls-list').length > 0) {                       $(ui.item).addclass('dropped');                  } else {                       $(ui.item).addclass('sorted');                  }              },             stop: function(event, ui) {                if ($(ui.item).parents('#all-colls-list').length > 0) {                     $(ui.item).switchclass('droppedli', 'sortedli');                } else {                     $(ui.item).switchclass('sortedli', 'droppedli');                }                $(ui.item).removeclass('sorted');                $(ui.item).removeclass('dropped');             }        });   }); 

note: please note before run above script, have include either full or min versions of latest jquery.js , latest jquery ui java script files.

i have created bin solution on http://codebins.com/codes/home/4ldqpc3


Comments

Popular posts from this blog

c# - SVN Error : "svnadmin: E205000: Too many arguments" -

c# - Copy ObservableCollection to another ObservableCollection -

All overlapping substrings matching a java regex -