2008-12-14 14 views
14

पर क्लिक करके एक्स का संपादन सक्रिय करें मैं Jeditable को इनलाइन संपादन समाधान के रूप में उपयोग करने का प्रयास कर रहा हूं।जेडटेबल - वाई

डिफ़ॉल्ट व्यवहार (इसे संपादित करने के लिए तत्व पर क्लिक करें) काफी अच्छी तरह से काम करता है, लेकिन मैं किसी अन्य तत्व पर क्लिक करके एक तत्व को सक्रिय करना चाहता हूं।

उदाहरण के लिए a.activateEdit पर क्लिक करने से अगले div.edit सक्रिय हो जाएगा (स्पष्ट रूप से jQuery चयनकर्ताओं का उपयोग करके किया जाना चाहिए)।

$(document).ready(function() { 
    $('.edit').editable('http://www.example.com/save.php'); 
}); 

* संपादित करें:

मैं इस के लिए Jeditable दस्तावेज़ों में देखा है, लेकिन

FYI करें सही वाक्य रचना नहीं पा सके, डिफ़ॉल्ट Jeditable वाक्य रचना की तर्ज पर कुछ है: a better solution *

+0

मुझे पता है कि आपका प्रश्न थोड़ी देर पहले पूछा गया था लेकिन मैं वर्तमान में कुछ इसी तरह के लागू करने की कोशिश कर रहा हूं। क्या यह एक लिंक के क्लिक के साथ काम कर रहा है, लेकिन क्या उस तत्व के क्लिक ईवेंट को हटाने का कोई तरीका है जिसे आप संपादित करना चाहते हैं? दूसरे शब्दों में केवल संपादन योग्य तत्व बनाएं, लिंक से संपादन योग्य और जब आप इसे विशेष रूप से क्लिक नहीं करते हैं? धन्यवाद। –

+0

आप उस ऑब्जेक्ट के लिए बाध्यकारी क्लिक ईवेंट को निकालने के लिए unbind() को आजमा सकते हैं। – yoavf

+0

क्षमा करें, लेकिन क्या आप कुछ कोड प्रदान कर सकते हैं? मैं इसके लिए बहुत नया हूं। क्या unbind() .editable (url, {}) के भीतर जाना होगा ;? –

उत्तर

24

से ऊपर कोड या तो काफी सही नहीं है। यह सभी जेडटेबल उदाहरणों पर क्लिक इवेंट ट्रिगर करता है।

वहाँ यह करने के लिए कई तरीके हैं और यह सब अपने HTML पर निर्भर करता है, लेकिन उदाहरण के लिए यदि आप HTML निम्नलिखित है:

<div class="edit" id="unique_id">Editable text</div> 
<a href="#" class="edit_trigger">Edit me!!</a> 

तो फिर तुम जावास्क्रिप्ट निम्न का उपयोग कर सकते हैं:

/* Bind Jeditable instances to "edit" event. */ 
$(".edit").editable("http://www.example.com/save.php", { 
    event  : "edit" 
}); 
/* Find and trigger "edit" event on correct Jeditable instance. */ 
$(".edit_trigger").bind("click", function() { 
    $(this).prev().trigger("edit"); 
}); 
+3

यह ध्यान देने योग्य है कि कुछ संदर्भों में, '$ (this) .prev()' आवश्यक रूप से वह तत्व नहीं हो सकता है जिसे आप वास्तव में संपादन योग्य मोड सेट करना चाहते हैं। (हालांकि, इस उदाहरण में, यह है।) यह सुनिश्चित करने के लिए कि आप संपादित कर रहे हैं, यह सुनिश्चित करने के लिए '' ("# unique_id") 'या' $ ("संपादित करें [id = 'unique_id']") का चयन करने के लिए शायद अधिक टिकाऊ है। सही तत्व – pjmorse

+0

हालांकि यह बहुत अच्छा है। मैंने अभी ट्रिगर ('क्लिक') का उपयोग किया है, इसलिए मुझे एक विशेष ट्रिगर सेट करने की ज़रूरत नहीं थी और मेरे पास कुछ अन्य फ़ंक्शंस भी क्लिक पर क्लिक करने के लिए सेट थे। लेकिन यह वही था जो मुझे चाहिए था। – Jake

+1

@ मिका, मैं जेडटेबल प्लगइन का उपयोग करके कई फ़ील्ड कैसे संपादित करूं, बस एक ऐसे परिस्थिति में अपना आत्म पाया जहां मुझे एकाधिक फ़ील्ड को संपादित करने और एक दूसरे के खिलाफ सत्यापन करने की आवश्यकता है। –

2

आप इस कोड को किसी अन्य तत्व के क्लिक फ़ंक्शन में रख सकते हैं। उदाहरण:

HTML:

<a class="clickme">Click me to edit</a> 
<div class="edit">Edit Me!</div> 

jQuery:

$(document).ready(function() { 
$("a.clickme").click(function(){ 
    $('.edit').editable('http://www.example.com/save.php'); 
}); 
}); 
2

ठीक है, Ata's answer नहीं काफी काम है, लेकिन यह मुझे सही रास्ते पर सेट किया था:

$(document).ready(function() { 
    $('.edit').editable('http://www.example.com/save.php'); 
    $("a.clickme").click(function(){ 
      $('.edit').click(); 
    }); 
}); 
1

मैं पिछले संपादन योग्य तत्वों को लक्षित करने के लिए पिछले दो प्रतिक्रियाओं की शक्तियों को संयुक्त किया गया है:

/* Find and trigger "edit" event on next Jeditable instance. */ $(".edit_trigger").livequery('click', function() { $(this).next().click(); });

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