2013-06-18 9 views
6

JqueryUI क्रमबद्ध करने पर, जब उपयोगकर्ता कोई आइटम ड्रैग करता है, तो ईवेंट को बदलें। मुझे यह नीचे उदाहरण पर मिला है।परिवर्तन घटना पर Jquery UI सॉर्ट करने योग्य आइटम स्थिति

jsFiddle code here

stop: function(event, ui) { 
     console.log("New position: " + ui.item.index()); 
    }, 
    change: function(event, ui) { 
     // When the item postion is changed while dragging a item, I want it's position 
     console.log("New position: " + ui.item.index()); 
    } 

मेरी कोड में उपयोगकर्ता को कोई मद (Item7) खींच लेता है और स्थिति में परिवर्तन है, जबकि एक आइटम खींचने और स्थिति बदलने देता है। मैं एक ड्रैगिंग आइटम की स्थिति प्राप्त करना चाहता हूं।

मैं सिर्फ एक जवाब यहाँ देखा: jQuery UI Sortable Position

ऊपर के लिंक, स्थिति मूल्य (ui.item.index()) में बंद करो समारोह पर पहुंचा जा सकता है, जबकि एक आइटम खींच, मैं चाहता हूँ यह स्थिति (परिवर्तन समारोह पर) है? कोई उपाय ?

मुझे इसकी आवश्यकता है क्योंकि जब उपयोगकर्ता आइटम 2 के बाद आइटम 7 रखने की कोशिश करता है, तो मैं पिछले आइटम 2 से मान प्राप्त करने के लिए कुछ सत्यापन कर दूंगा (यदि मुझे ड्रैगिंग आइटम की वर्तमान स्थिति पता है, तो केवल मैं पिछले आइटम तक पहुंच सकता हूं)। अगर सत्यापन सफलता प्राप्त है, तो इसे रखा जा सकता है या मुझे कुछ संदेश दिखाना है।

+0

[यह प्रश्न और उत्तर यहां] (http://stackoverflow.com/questions/8148145/drag-event-for-jquery-ui-sortable) आपके लिए उच्च उपयोग प्रतीत होता है। – Ohgodwhy

उत्तर

7

यदि आप वर्तमान में जो कवर किया गया है उसका सूचकांक प्राप्त करना चाहते हैं, तो placeholder का उपयोग करने का प्रयास करें।

change: function(event, ui) { 
     console.log("New position: " + ui.placeholder.index()); 
} 

FIDDLE

0

जूड डुरान के जवाब लगातार काम नहीं करेगा (यह मेरे बाल बाहर taring के बाद पता चला)। माउस स्थान के आधार पर पहले और आखिरी आइटम प्लेसहोल्डर स्थानांतरित होते हैं।

function getPaceholderIndex(ui) { 
    var clone = $(myMenu).clone(); 
    $('.ui-sortable-helper', clone).remove(); 
    return $('.ghost', clone).index(); 
} 

अधिक कुशलतापूर्वक काम करेगा क्योंकि यह पहली बार वास्तविक वस्तु को हटा देता है और प्लेसहोल्डर को छोड़ देता है। ध्यान दें कि मेरे पास प्लेसहोल्डर पैरामीटर के रूप में 'भूत' सेट है।

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