เนื่องจาก jQuery 1.7 มีวิธีใหม่ในการจัดการกับเหตุการณ์ต่างๆ ฉันคิดว่าฉันจะตอบที่นี่เพียงเพื่อแสดงให้เห็นว่าฉันจะทำแบบนี้ "ใหม่" ได้อย่างไร หากคุณไม่ได้ผมขอแนะนำให้คุณอ่านเอกสาร jQuery สำหรับ "กับ" วิธีการ
var handler = function(event){
// if the target is a descendent of container do nothing
if($(event.target).is(".container, .container *")) return;
// remove event handler from document
$(document).off("click", handler);
// dostuff
}
$(document).on("click", handler);
เรากำลังใช้ตัวเลือกของ jQuery ในทางที่ผิดและทำให้เกิดเหตุการณ์ต่างๆ โปรดทราบว่าฉันต้องทำความสะอาดตัวจัดการเหตุการณ์ในภายหลัง คุณสามารถทำให้พฤติกรรมนี้เป็นอัตโนมัติได้ด้วย$('.container').one
( ดู: เอกสาร ) แต่เนื่องจากเราจำเป็นต้องทำเงื่อนไขภายในตัวจัดการที่ไม่สามารถใช้ได้ที่นี่