2009-11-04 21 views
10

मैं गतिशील रूप से एक पृष्ठ पर सूची आइटम जोड़ रहा $ .Get साथ, तो राजभाषा तत्व करने के लिए उन्हें जोड़कर। इस बिंदु के लिए बहुत सामान्य है।jQuery + क्रमित करने योग्य + लाइव

लेकिन जब वे पेज में लोड करने के लिए, और मैं उन्हें sortable बनाने के लिए सक्षम नहीं किया जा रहा हूँ jQuery इन नए आइटम के बारे में पता नहीं है।

मैं jQuery लाइव के साथ कुछ परीक्षणों की, लेकिन कहीं भी नहीं मिला कण कि ...

उत्तर

16

.sortable() की refresh विधि पहचान करने के लिए li की जो .sortable() कार्यों के माध्यम से नहीं जोड़ रहे हैं नहीं लगता है।

अपने .sortable() प्रारंभिक कोड को उस फ़ंक्शन में जोड़ने का प्रयास करें जिसे आप दस्तावेज़ तैयार करते हैं और आप कोड में जहां आप गतिशील रूप से li जोड़ते हैं।

बजाय:

jQuery(document).ready(function() { 
    jQuery("#mySortableOL").sortable({ 
     ... 
    }); 
} 
... 
jQuery("#mySortableOL").append(...); 
jQuery("#mySortableOL").sortable("refresh"); 

कुछ तरह का प्रयास करें:

jQuery(document).ready(function() { 
    jQuery("#mySortableOL").doSort(); 
} 
... 
jQuery("#mySortableOL").append(...); 
doSort(); 
... 
function doSort(){ 
    jQuery("#mySortableOL").sortable({ 
     ... 
    }); 
} 
+1

यह केवल एलआई नहीं है, यह मूल रूप से सब कुछ है, लेकिन दृष्टिकोण सही और काम कर रहा है। –

6

आप का प्रयास किया था .sortable ('ताज़ा')? http://docs.jquery.com/UI/Sortable#method-refresh

+1

यह स्वीकार्य उत्तर क्यों नहीं है? यह इस अजाक्स मुद्दे के प्रबंधन के सबसे स्वच्छ तरीके से है। –

0

अपने कोड की पूंछ के अंत में बस अपने सभी पैरामीटर को दोबारा निर्दिष्ट करने के साथ .sortable({}); संलग्न करें। फ़ंक्शन या कुछ का उपयोग कर अपने कोड को डुप्लिकेट किए बिना ऐसा करने का शायद एक तरीका है, लेकिन कम से कम यह काम करता है।

$('#List').live('click',function(e){ 

var myHTMLcode = '<li>New Item</li>' 

myHTMLcode.appendTo('#List').sortable({ 
items : 'li', 
axis : 'xy',  

update : function(event, ui){SPECIFIC Sortable FUNCTION CODE HERE}).fadeIn(); 
)}; 
-2

मैं इस समाधान और मेरे लिए ठीक काम कर रहा पाया।

makesortable = function(){ 
     $("#mylist").sortable({ 
      ... 
     }) 
     }; 
... 
// after list refresh : 
makesortable(); 
संबंधित मुद्दे