2013-07-21 6 views
8

मैं jquery ui sortable के साथ काम कर रहा हूं। मैं सॉर्टिंग सरणी को ड्रॉप ईवेंट पर हैंडलिंग फ़ाइल में पास करने के लिए प्राप्त करना चाहता हूं।Jquery ui sortable ड्रॉप इवेंट

एक अजीब बात यह है कि मैंने पाया .. http://jsfiddle.net/7Ny9h/

$(function() { 
    $("#sortable").sortable(); 
    $("#sortable").disableSelection(); 

    $("#sortable li").droppable({ 
     drop: function() { 
      var order = $("#sortable").sortable("serialize", {key:'order[]'}); 
      $("p").html(order); 
     } 
    }); 
}); 

नमूना देखकर, अगर मैं बॉक्स नं .2 ले जाते हैं, बॉक्स 2 सरणी के बाहर छोड़ दिया जाता है।

शायद मुझे एक तरह की "ड्रॉपेंड" घटना की आवश्यकता है क्योंकि ऐसा लगता है कि jquery ui ड्रॉप इवेंट ड्रैग और गिराए गए नंबर की गणना नहीं करता है।

उत्तर

19

मैं jQuery UI सॉर्ट करने योग्य stop ईवेंट के साथ समस्या का समाधान कर सकता हूं।

$(function() { 
    $("#sortable").sortable(); 
    $("#sortable").disableSelection(); 

    $("#sortable").sortable({ 
     stop: function() { 
      var order = $("#sortable").sortable("serialize", {key:'order[]'}); 
      $("p").html(order); 
     } 
    }); 
}); 
+0

यह does not काम http://jsfiddle.net/Tncg8/ – Prozi

+0

@Prozi, कि क्योंकि आप गलत कर रहे हैं। आपकी टिप्पणी में आपका JSfiddle वास्तव में "ड्रॉप करने योग्य" ईवेंट को "क्रमबद्ध" में परिवर्तित नहीं करता है। यही कारण है कि यह आपके लिए असफल रहा था, मैंने आपके लिए यहां अपने जेएसफ़िल्ड को अपडेट किया है: http://jsfiddle.net/a94fak79/ – hazrpg

+0

एक बहुत ही सरल समाधान के लिए नीचे @ सोर्सॉप ट्री का उत्तर देखें जो मेरे लिए पूरी तरह से काम करता है। –

19

आप इसका पता लगाने के लिए update का भी उपयोग कर सकते हैं।

$("#sortable").sortable({ 
     update: function() { 
      // do stuff 
     } 
    }); 
+1

यदि आप "खत्म होने पर" सामान्य के बजाय किसी प्रकार की "सफलता पर" संदेश की तरह दिख रहे हैं तो यह बेहतर विकल्प ('स्टॉप' के बजाय) है। – testing123

संबंधित मुद्दे