तो, अतिरिक्त कोड के बिना, इस एक अंधे शॉट का एक सा है [सदस्य टोनी द्वारा अनुसंधान के जवाब में संपादित] , लेकिन ऐसा लगता है कि यहां के बारे में सोचने के लिए दो चीजें हैं: 1. डिफ़ॉल्ट ब्राउज़र टूलटिप व्यवहार; 2. एक संभावित रूप से अद्यतन डोम और काम करने के लिए अपने कस्टम टूलटिप्स की क्षमता।
# 1: के संबंध में जब आप तत्व पर अपनी कस्टम घटना को बांधते हैं, तो आप event.preventDefault()
का उपयोग कर सकते हैं ताकि टूलटिप्स दिखाई न दें। यह ठीक से काम नहीं करता है। इसलिए, "शीर्षक" विशेषता का उपयोग करने के लिए कामकाज मूल्य को पकड़ना है, इसे डेटा ऑब्जेक्ट ($.data()
फ़ंक्शन) में धक्का देना है, और उसके बाद शीर्षक को खाली स्ट्रिंग के साथ हटाएं (removeAttr असंगत है)। फिर माउसलेव पर, आप डेटा ऑब्जेक्ट से मान लेते हैं और इसे वापस शीर्षक में दबाते हैं। यह विचार यहां से आता है: How to disable tooltip in the browser with jQuery?
# 2 के बारे में: डीओएम परिवर्तन पर पुनः बाध्यकारी होने के बजाय, आपको केवल एक श्रोता तत्व को बांधने की आवश्यकता है जिसे कभी नष्ट होने की उम्मीद नहीं है। आम तौर पर यह किसी प्रकार का कंटेनर तत्व होता है, लेकिन यह document
(लगभग .live()
अनुमानित कर सकता है जिसे अब हटा दिया गया है) यदि आपको वास्तव में एक समेकित कंटेनर की आवश्यकता है।
var container = $('.section');
container.on('mouseenter', 'a', function() {
var $this = $(this);
var theTitle = $this.attr('title');
$this.attr('title', '');
$('#notatooltip').html(theTitle);
$.data(this, 'title', theTitle);
});
container.on('mouseleave', 'a', function() {
$('#notatooltip').html('');
var $this = $(this);
var storedTitle = $.data(this, 'title');
$this.attr('title', storedTitle);
});
मेरे अवास्तविक मार्कअप (सिर्फ इस उदाहरण के लिए) यहाँ है:: यहाँ एक नमूना मेरी खुद के तैयार करने के कुछ नकली मार्कअप का उपयोग करता है है
<div class="section">
<a href="#" title="foo">Hover this foo!</a>
<div id="notatooltip"></div>
</div>
और एक बेला यहाँ है: http://jsfiddle.net/GVDqn/ या कुछ के साथ सैनिटी चेक: http://jsfiddle.net/GVDqn/1/
शायद ऐसा करने का एक और इष्टतम तरीका है (यदि आप एक चयनकर्ता के साथ दो अलग-अलग आयोजनों के लिए दो अलग-अलग कार्यों को बांध सकते हैं तो ईमानदारी से शोध नहीं किया गया) लेकिन यह चाल चल जाएगा।
आपको डीओएम परिवर्तन के आधार पर फिर से बांधने की आवश्यकता नहीं है, प्रतिनिधि श्रोता स्वचालित रूप से इसे संभालेगा। और आप इसे रोकने से डिफ़ॉल्ट टूलटिप कार्यक्षमता को रोकने में सक्षम होना चाहिए।
संभव डुप्लिकेट [कैसे जब डोम बदल दिया गया है पहचान करने के लिए?] (Http://stackoverflow.com/questions/3744706/how-to-identify-when-the -डोम-बदल दिया गया है) –
डोम में हर बदलाव को सुनने की कोशिश कर रहा है ... और हर बार अपने तत्वों की खोज वास्तव में महंगा होगा। – charlietfl
संभावित डुप्लिकेट [क्या कोई jQuery डॉम परिवर्तन श्रोता है?] (Http://stackoverflow.com/questions/2844565/is-there-a-jquery-dom-change-listener) – APerson