คำถามติดแท็ก onblur

5
jQuery: fire click () ก่อนเหตุการณ์เบลอ ()
ฉันมีช่องป้อนข้อมูลซึ่งฉันพยายามให้คำแนะนำในการเติมข้อความอัตโนมัติ รหัสดูเหมือน <input type="text" id="myinput"> <div id="myresults"></div> ในblur()เหตุการณ์ของอินพุตฉันต้องการซ่อนผลลัพธ์ 'div: $("#myinput").live('blur',function(){ $("#myresults").hide(); }); เมื่อฉันเขียนบางสิ่งลงในอินพุตของฉันฉันส่งคำขอไปยังเซิร์ฟเวอร์และได้รับการตอบสนอง json แยกวิเคราะห์เป็นโครงสร้าง ul-> li และใส่ ul นี้ไว้ใน#myresultsdiv ของฉัน เมื่อฉันคลิกไปที่องค์ประกอบ li ที่แยกวิเคราะห์นี้ฉันต้องการตั้งค่าจาก li เป็นอินพุตและซ่อน#myresultsdiv $("#myresults ul li").live('click',function(){ $("#myinput").val($(this).html()); $("#myresults").hide(); }); ทุกอย่างเป็นไปด้วยดี แต่เมื่อฉันคลิกไปที่blur()เหตุการณ์li ของฉันจะเริ่มทำงานก่อนclick()และค่าของอินพุตไม่ได้รับ html ของ li จะตั้งค่าclick()เหตุการณ์ก่อนได้blur()อย่างไร?
135 jquery  click  onblur 


6
ปัญหาการสั่งซื้อ onclick () และ onblur ()
ฉันมีช่องป้อนข้อมูลที่แสดงเมนูแบบเลื่อนลงที่กำหนดเอง ฉันต้องการฟังก์ชันต่อไปนี้: เมื่อผู้ใช้คลิกที่ใดก็ได้นอกช่องป้อนข้อมูลเมนูควรถูกลบออก หากโดยเฉพาะอย่างยิ่งผู้ใช้คลิกที่ div ภายในเมนูเมนูควรถูกลบออกและการประมวลผลพิเศษควรเกิดขึ้นตามการคลิก div นี่คือการใช้งานของฉัน: ช่องป้อนข้อมูลมีonblur()เหตุการณ์ที่ลบเมนู (โดยการตั้งค่าระดับบนสุดinnerHTMLเป็นสตริงว่าง) เมื่อใดก็ตามที่ผู้ใช้คลิกนอกช่องป้อนข้อมูล div ภายในเมนูยังมีonclick()เหตุการณ์ที่เรียกใช้การประมวลผลพิเศษ ปัญหาคือonclick()เหตุการณ์จะไม่เริ่มทำงานเมื่อคลิกเมนูเนื่องจากช่องป้อนข้อมูลonblur()เริ่มทำงานก่อนและลบเมนูรวมถึงonclick()s! ฉันจะแก้ไขปัญหาโดยการแยก divs เมนูonclick()เข้าonmousedown()และonmouseup()เหตุการณ์ที่เกิดขึ้นและการตั้งธงทั่วโลกในการลงเมาส์ซึ่งจะถูกล้างบนเมาส์ขึ้นคล้ายกับสิ่งที่ได้รับการแนะนำในคำตอบนี้ เนื่องจากonmousedown()เริ่มทำงานก่อนonblur()การตั้งค่าสถานะจะถูกตั้งค่าonblur()หากมีการคลิก div เมนูใดเมนูหนึ่ง แต่จะไม่เกิดขึ้นหากอยู่ที่อื่นบนหน้าจอ หากเมนูถูกคลิกฉันจะกลับทันทีonblur()โดยไม่ต้องลบเมนูจากนั้นรอonclick()ให้ไฟเริ่มทำงานเมื่อถึงจุดนั้นฉันสามารถลบเมนูได้อย่างปลอดภัย มีวิธีแก้ปัญหาที่หรูหรากว่านี้หรือไม่? รหัสมีลักษณะดังนี้: <div class="menu" onmousedown="setFlag()" onmouseup="doProcessing()">...</div> <input id="input" onblur="removeMenu()" ... /> var mouseflag; function setFlag() { mouseflag = true; } function removeMenu() { if (!mouseflag) { document.getElementById('menu').innerHTML = …
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.