2011-02-02 9 views
9

मैं jQuery UI कैलेंडर के अतिरिक्त, फ्लॉवरप्लेयर के jQuery टूल्स फ्रेमवर्क (विशेष रूप से टूलटिप्स प्लगइन) का उपयोग कर रहा हूं।jQuery टूल्स -> टूलटिप विधि को नष्ट कर दें?

तालिका की प्रत्येक पंक्ति ऊपर और नीचे एक पंक्ति सम्मिलित करने की क्षमता है।

जब यह कर मैं क्लिक किया वस्तु (घटनाओं और वस्तुओं) क्लोनिंग कर रहा हूँ और एकदम ऊपर या नीचे यह डालने।

एक नई पंक्ति जोड़ने के बाद, मैं तालिका को रीफ्रेश करता हूं, मेरे तत्वों के लिए नई आईडी उत्पन्न करता हूं, डेटपिकर को पुन: प्रारंभ करता हूं, और टूलटिप को पुन: प्रारंभ करने का प्रयास करता हूं।

मैं एक तरह से उदाहरण से पूरी तरह इसे नष्ट और यह पुन: लागू करने के लिए तलाश कर रहा हूँ।

मैं datepicker('destroy') विधि करने के लिए कुछ इसी तरह के लिए देख रहा हूँ।

  1. माउसओवर निकल और ध्यान केंद्रित घटनाओं के लिए: जब reinvoking टूलटिप, यह स्वतः ही वस्तु यह से बनाया गया था के लिए चला जाता है

    $j($editRow).find('input.date').datepicker('destroy').datepicker({dateFormat: 'mm-dd-yy', defaultDate : defaultDateStr});

    मैं पहले से ही करने का प्रयास किया।

  2. टूलटिप DOM एलीमेंट छुपाने के लिए, लक्ष्य से टूलटिप वस्तु निकालने के लिए, और यह पुन: लागू। वही बात होती है (1)

क्या कोई तरीका है कि मैं खुद को एक नष्ट विधि बना सकता हूं?

+0

क्या आप टूलटिप को अनबिंड करने का प्रयास करते समय "स्वचालित रूप से उस ऑब्जेक्ट के लिए जाते हैं" से आपका क्या मतलब है? –

+0

क्या आप उस टूल को पोस्ट कर सकते हैं जिसका उपयोग आप टूलटिप्स को कॉल करने के लिए कर रहे हैं, और जिस कोड का आपने उपयोग करने और उन्हें अनइंड करने के लिए उपयोग किया था? – themerlinproject

उत्तर

5

मैंने कोशिश की kwicher की विधि क्या करना चाहिए, और यह काम करने के लिए नहीं मिल सका। हालांकि मैं छोटा कोड बदलने की कोशिश कर रहा था, और मुझे पूरा यकीन नहीं है कि मुझे बदलाव करने के लिए सही जगह मिली है।

मैंने किया था, हालांकि, इस काम करने के लिए मिलता है। प्रमाणीकरण विफल एक वर्ग है जिसे मैं उन सभी इनपुट फ़ील्ड में लागू कर रहा हूं जिनके पास टूलटिप्स भी लागू होते हैं।

$('.validationFailed').each(function (index) { 
    $(this).removeData('tooltip'); 
}); 

$('.tooltip').remove(); 

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

सबसे अच्छा मैं बता सकता हूं कि टूलटिप क्लास हटाने वास्तविक टूलटिप divs से छुटकारा पाता है, जिनकी घटनाओं को भी सीधे तारित किया जाता है। .removeData टूलटिप को भविष्य में फिर से बाध्य करने की अनुमति देता है।

1

आप अभी भी इसे की जरूरत है आप कर सकते हैं इस प्रकार है: - टूलटिप कार्यान्वयन फ़ाइल में निम्न समारोह

destroy: function(e) { 
     tip.detach(); 
     } 

कहीं जोड़ने में:

$.extend(self, { 
... 

मैं पिछले जन्म का समारोह के बाद है ।

फिर जब आप टिप, आग निकालना चाहते हैं:

$(.tip).data('tooltip').destroy(); 

यह चाल

कश्मीर

5
आपके विचारों और टॉम की जवाब पर

भवन, मैंने पाया तीन चीजें जरूरी हैं कि:

  1. टूलटिप लक्ष्य तत्व से
  2. अनबाइंड घटना श्रोताओं टूलटिप लक्ष्य तत्व से 'टूलटिप' डेटा निकालने के
  3. तत्व (यदि आप अपने टिप में मनमाने ढंग से HTML के लिए अनुमति देने के लिए इस टूलटिप दृष्टिकोण का उपयोग कर रहे हैं यह सोचते हैं)

तो, यह सरल समारोह चाल करना चाहिए हटा दें। बस इसे एक jQuery ऑब्जेक्ट पास करें जिसमें टूलटिप्स के लक्षित तत्व शामिल हैं जिन्हें आप नष्ट करना चाहते हैं।

function destroyTooltips($targets) { 
    $targets.removeData('tooltip').unbind().next('div.tooltip').remove(); 
} 
-1

हो सकता है कि बहुत देर हो चुकी है ... ;-)
लेकिन यहाँ आप 'टूलटिप' के सभी तरीकों पा सकते हैं: http://www.w3schools.com/bootstrap/bootstrap_ref_js_tooltip.asp

मैं कोई है जो द्वारा पास कर सकता है के लिए टिप छोड़ देते हैं, एक ही होने समस्या: विभिन्न 'टूलटिप' क्रियाओं/objs से निपटना।

0
if($element.data('ui-tooltip')) {//if tooltip has been initialized 
     $element.tooltip('destroy'); 
    } 
संबंधित मुद्दे