मैं jQuery के साथ बहुत ही सरल जावास्क्रिप्ट टूलटिप बनाने की कोशिश कर रहा हूं लेकिन मैंने एक ईंट की दीवार मारा है। विचार div
के अंदर थोड़ा इनलाइन तत्व (span
) होना है। span
तत्व में एक छोटे से HTML (छवि और लिंक) के साथ टूलटिप div
होगा। span
तत्व पर क्लिक करते समय टूलटिप खोला जाना चाहिए और इसके बाहर या टूलटिप के बाहर क्लिक करते समय बंद होना चाहिए।jQuery टूलटिप को बंद करने के लिए कैसे करें
अभी तक, टूलटिप खोलना कोई समस्या नहीं है लेकिन बंद होना है।
<!DOCTYPE HTML>
<html>
<head>
<title></title>
<style>
#colors > div {
background-color: red;
height: 50px;
width: 50px;
margin: 5px;
}
#colors > div > span {
min-height: 10px !important;
min-width: 10px !important;
border: 3px solid black;
position: relative;
}
.tooltip {
border: 2px solid blue;
display: none;
}
</style>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
<script>
$(function() {
// generate boxes and tooltips
for (var i = 0; i < 9; i++) {
$('#colors').append('<div id="' + i + '"><span><div class="tooltip"><a href="#">add to favorites</a></div></span></div>');
}
$('#colors').delegate('span', 'click', function (event) {
$(this).children('.tooltip').css({position:'absolute', top:'5px', left:'5px'}).fadeIn();
// bottom one won't work
//event.stopPropagation();
});
$(document).delegate('body', 'click', function (event) {
var that = this
$.each($('.tooltip'), function (index, element) {
// it's always visible ...
//if ($(element).is(':visible')) {
// doesn't work either
if ($(element).is(':visible') && $(element).has(event.target).length === 0) {
var s = event.target;
console.log([($(s) == event.target), event.target, index, element, $(element).has(event.target).length, that]);
}
});
});
})
</script>
</head>
<body>
<div id="colors"></div>
</body>
</html>
मैं अगर क्लिक span
और टूलटिप के बाहर है एक तरह से टूलटिप बंद करने के लिए खोजने के लिए प्रतीत नहीं कर सकते हैं।
अपने जवाब के लिए एक छोटे से अधिक जानकारी जोड़ने के लिए प्रयास करें। –