2010-11-10 18 views
6

पर जेडटेबल काम करना मैं इन-प्लेस संपादन के लिए जेडडिबल प्लगइन का उपयोग कर रहा हूं।नए तत्वों (.live)

मेरे पास एक "सेटअप" फ़ंक्शन है जो सभी प्रासंगिक वर्गों पर .editable() पर कॉल करता है। समस्या यह है कि, मेरे पास नए संलग्न तत्व हैं जिन्हें मैं संपादन योग्य बनाना चाहता हूं। जाहिर है, नए जोड़े जाने के बाद, .editable() उन्हें कभी नहीं बुलाया जाता है।

दूसरे शब्दों में, मुझे यह प्रभाव मिल रहा है कि jquery's live() फ़ंक्शन करता है, लेकिन editable() फ़ंक्शन के लिए।

मेरे वर्तमान workaround मेरे लिए थोड़े बदसूरत लगता है (redscribe_button बटन पाठ संपादित करने के लिए क्लिक करने की जरूरत है):

$(".redescribe_button").live("click", function(click_event) { 
    click_event.preventDefault(); 

    $(".editable", $(this).parent().parent()).editable("/temp/", { 
     event: "make_editable", 
     indicator : 'Saving...', 
     tooltip : 'Click to edit...' 
    }); 

    $(".editable", $(this).parent().parent()).trigger('make_editable'); 
}); 

दूसरे शब्दों में, मैं तो बस हर बार .editable फोन कर रहा हूँ संपादित करें बटन क्लिक किया गया है।

बेहतर समाधान के लिए कोई विचार?

उत्तर

3

तत्व पर एक से अधिक बार संपादन योग्य कॉलिंग का कोई प्रतिकूल दुष्प्रभाव नहीं है, है ना? तो हर बार कुछ भी बदलाव क्यों न करें सेटअप को फिर से करें।

+0

यह प्रभावी रूप से मैं क्या कर रहा हूं, इसे हर किसी के लिए फिर से करने के बजाय, मैं इसे फिर से क्लिक कर रहा हूं (या पहली बार कर रहा हूं) तत्व पर क्लिक किया गया है। फिर भी, यह थोड़े गलत लगता है। –

+1

यह काम करता है, और यह कोड को अच्छा और साफ रखता है। यह तोड़ा नहीं है, इसलिए इसे ठीक करने की कोई आवश्यकता नहीं है। –

5

मैं अभी भी इस प्रश्न पर आया हूं और इसे एक और अधिक सुरुचिपूर्ण तरीके से हल किया है (आईएमएचओ)।

$('.jqEdit').live('click',function(event) { 
    event.preventDefault(); 
    $(this).editable('save.php') 
}); 
संबंधित मुद्दे