मेरे पास एक फुलस्क्रीन गूगल मैप है और फिर मेरे पास एक पॉपअप है। क्या मैं चाहता हूँ कि जब मैं किसी भी चीज़ पर क्लिक करूँ तो पॉपअप गायब हो जाता है या अगर मैं esc दबाता हूँ।
नीचे दिया गया कोड केवल एक बार काम करता है। मैं पॉपअप को खोल सकता हूं और इसे बंद कर सकता हूं लेकिन फिर यह "टी ओपन" फिर से जीता।
var hideBlogContent = function () {
$(document).on("click", function (e) {
if ($(e.target).closest($("#blogpost")).length === 0) {
$("#blogpost").hide();
$(document).unbind();
$(document).off();
}
});
$(document).on("keydown", function (e) {
if (e.keyCode === 27) { // ESC
$("#blogpost").hide();
$(document).unbind();
$(document).off();
}
});
मैं इसे हर बार कैसे काम कर सकता हूं?
उत्तर:
उत्तर № 1 के लिए 1नाम स्थान का उपयोग करें, के लिए प्रलेखन की जाँच करें on()
अधिक देखने के लिए .. वर्तमान में अपने .off()
फ़ंक्शन दस्तावेज़ पर सभी बाइंडिंग बंद कर रहा है। लेकिन नेमस्पेस के साथ आप एक विशिष्ट ईवेंट बाइंडिंग को बंद कर सकते हैं।
$(document).on("click.closeMap", function (e) {
if ($(e.target).closest($("#blogpost")).length === 0) {
$("#blogpost").hide();
$(document).off("click.closeMap");
}
});
$(document).on("keydown.closeMap", function (e) {
if (e.keyCode === 27) { // ESC
$("#blogpost").hide();
$(document).off("keydown.closeMap");
}
});
इसके अलावा, unbind()
यहाँ बेमानी थी।