2013-02-17 32 views
5

पर होवर करते समय jQuery का उपयोग करके शीर्षक विशेषता को बदलना मेरे पास div बटन है जिसमें शीर्षक विशेषता है जिसे हमने jQueryUI का उपयोग करके टूल युक्तियों के लिए पाठ के रूप में उपयोग किया है। मैं इसे क्लिक करके बटन के टूलटिप को बदलना चाहता हूं। हालांकि, जब बटन क्लिक किया जाता है और कॉल बैक फ़ंक्शन निकाल दिया जाता है, तो माउस div पर होता है और शीर्षक शून्य होता है।तत्व

मैं इस व्यवहार को ठीक करने के बारे में कैसे जा सकता हूं? ऐसा लगता है कि jQueryUI टूलटिप विजेट होवर पर शीर्षक हटा देता है और इसे वापस माउस पर रखता है।

$(document).tooltip(); 
$(".btn").click(function(){ 
    alert($(this).attr("title")); // Expect to see T1 or T2 but shows blank 
    if ($(this).attr("title")=="T1"){ 
     $(this).attr("title","T2") 
    }else{ 
     $(this).attr("title","T1") 
    } 
}); 

लाइव: http://jsfiddle.net/lordloh/ckTjA/

जगह में jQueryUI टूलटिप विजेट के बिना, सब कुछ ठीक काम करने के लिए लग रहे हैं: http://jsfiddle.net/lordloh/ckTjA/1/

इसके अलावा, मैं टूलटिप विजेट $(document) पर लागू किया है। तो मैं $(this).tooltip("option","content") का उपयोग नहीं कर सकता क्योंकि टूलटिप $(this) पर स्पष्ट रूप से लागू नहीं है। इसका परिणाम कंसोल पर जावास्क्रिप्ट त्रुटि में होता है।

2013-02-18: अभी तक, मैं $(document).tooltip("destroy"); चला रहा हूं, शीर्षक विशेषताएँ बदल रहा हूं और $(document).tooltip();। नहीं एक सुरुचिपूर्ण समाधान :-(मैं कुछ देख रहा हूँ कि एक हैक नहीं है

उत्तर

3

विजेट पाठ को हटा । title से दिखाई दे रहा यह पाठ जब निकाल देता है, यह तत्व से जुड़ी डेटा में यह स्टोर से स्थानीय ब्राउज़र टूलटिप को रोकने के लिए विशेषता

आप कोड की इस पंक्ति का उपयोग कर एक ही कर सकते हैं:।

$("#my-element").data("ui-tooltip-title", "My new tooltip message"); 

अब, यदि उपयोगकर्ता अपने माउस को तत्व से दूर ले जाता है, और फिर उस पर वापस जाता है, तो यह नया टेक्स्ट दिखाएगा।

तुरंत नया टेक्स्ट दिखाने के लिए, आपको लाइव टूलटिप ओवरले तत्व अपडेट करना होगा, जो धन्यवाद प्राप्त करना आसान है। तुम सिर्फ इस के बाद आप पाठ को नवीनीकृत किया है क्या करने की जरूरत:

$(".ui-tooltip-content").html($("#my-element").data("ui-tooltip-title")); 

jQuery यूआई 1.10.0 पर परीक्षण किया गया।

+0

धन्यवाद। मैं इसे $ (इस) .attr ("डेटा-यूई-टूलटिप-शीर्षक") के माध्यम से क्यों नहीं पहुंच सकता? –

+0

मुझे दस्तावेज़ों में दो प्रविष्टियां दिखाई देती हैं - http: // api।jquery.com/jQuery.data/ और http://api.jquery.com/data/। उत्तरार्द्ध एचटीएमएल 5 विशेषता 'डेटा- * 'का उपयोग कर रहा है। मुझे लगता है कि '$ (" # my-element ") डेटा (" ui-tooltip-title ")' डेटा कहीं और संग्रहीत कर रहा है (?)। –

+1

मुझे लगता है कि jQuery में केवल HTML5 विशेषता-xxx' में जानकारी संग्रहीत होती है यदि तत्व के साथ डेटा विशेषता है। यदि ऐसा नहीं होता है तो यह इसे किसी आंतरिक सरणी या उस तरह कुछ संग्रहीत करता है। – BG100

2

टूलटिप विजेट का उपयोग करते हैं, तो आप सामग्री अपने स्वयं के एपीआई के माध्यम से अद्यतन कर सकते हैं:।

$(this).tooltip('option', 'content', "New Content Goes Here"); 
+0

दुर्भाग्य से, यह '$ पर काम नहीं लगता है (इस)' के रूप में मैं 'document' पर टूलटिप –

+0

@LordLoh निर्धारित किया है।। अच्छी तरह से हो सकता है आप यह करना चाहिए :-) अलग ढंग से – Pointy

+0

फिलहाल, मैं '$ (दस्तावेज़) चला रहा हूं। टोलटिप (" नष्ट करें ");' शीर्षक गुणों और '$ (दस्तावेज़) को बदलना .tooltip();' एक सुरुचिपूर्ण समाधान नहीं :-( –

0

इस प्रयास करें:

$('document').ready(function() { $('document').tooltip(); $(".btn").click(function(){ alert($(this).attr("title")); if ($(this).attr("title")=="T1"){ $(this).attr("title","T2"); }else{ $(this).attr("title","T1"); } }); });

$ ('दस्तावेज़') एकल या डबल उद्धरण में होना चाहिए ('या ") और यह मेरे whitout $ के लिए ठीक काम करता है (' दस्तावेज़ ' ) .tooltip();