jQuery .mouseover()
และ.hover()
ฟังก์ชันต่างกันอย่างไร หากเหมือนกันทั้งหมดทำไม jQuery จึงใช้ทั้งสองอย่าง?
jQuery .mouseover()
และ.hover()
ฟังก์ชันต่างกันอย่างไร หากเหมือนกันทั้งหมดทำไม jQuery จึงใช้ทั้งสองอย่าง?
คำตอบ:
.mouseover()
.hover()
ผูกตัวจัดการหนึ่งหรือสองตัวกับองค์ประกอบที่ตรงกันเพื่อดำเนินการเมื่อตัวชี้เมาส์
เข้าและออกจากองค์ประกอบ
การโทร$(selector).hover(handlerIn, handlerOut)
เป็นชวเลขสำหรับ:
$(selector).mouseenter(handlerIn).mouseleave(handlerOut);
ผูกตัวจัดการเหตุการณ์ที่จะเริ่มทำงานเมื่อเมาส์เข้าสู่องค์ประกอบหรือทริกเกอร์ตัวจัดการนั้นบนองค์ประกอบ
mouseover
จะเริ่มทำงานเมื่อตัวชี้เคลื่อนที่เข้าไปในองค์ประกอบลูกเช่นกันในขณะที่mouseenter
จะเริ่มทำงานเมื่อตัวชี้เคลื่อนที่เข้าไปในองค์ประกอบที่ถูกผูกไว้เท่านั้น
ด้วยเหตุนี้.mouseover()
คือไม่ได้เช่นเดียวกับ.hover()
เหตุผลเดียวกัน.mouseover()
คือไม่ได้.mouseenter()
เช่นเดียวกับ
$('selector').mouseover(over_function) // may fire multiple times
// enter and exit functions only called once per element per entry and exit
$('selector').hover(enter_function, exit_function)
.hover()
ฟังก์ชันยอมรับสองอาร์กิวเมนต์ของฟังก์ชันหนึ่งสำหรับmouseenter
เหตุการณ์และหนึ่งสำหรับmouseleave
เหตุการณ์
คุณสามารถทดลองใช้http://api.jquery.com/mouseover/ในหน้า jQuery doc เป็นการสาธิตแบบอินเทอร์แอกทีฟเล็ก ๆ น้อย ๆ ที่ดีซึ่งทำให้ชัดเจนและคุณสามารถมองเห็นได้ด้วยตัวคุณเอง
ในระยะสั้นคุณจะสังเกตเห็นว่าเหตุการณ์วางเมาส์เหนือองค์ประกอบเกิดขึ้นเมื่อคุณอยู่เหนือองค์ประกอบนั้นมาจากองค์ประกอบลูกหรือองค์ประกอบหลัก แต่เหตุการณ์ป้อนเมาส์จะเกิดขึ้นเมื่อเมาส์เคลื่อนจากองค์ประกอบหลักไปยังองค์ประกอบนั้นเท่านั้น
จากเอกสารทางการ: ( http://api.jquery.com/hover/ )
เมธอด. hover () ผูกตัวจัดการสำหรับทั้ง mouseenter และ mouseleave เหตุการณ์ คุณสามารถใช้มันเพื่อปรับพฤติกรรมกับองค์ประกอบในช่วงเวลาที่เมาส์อยู่ในองค์ประกอบ
ตามอ่านได้ที่http://api.jquery.com/mouseenter/
เหตุการณ์ JavaScript ของ mouseenter เป็นกรรมสิทธิ์ของ Internet Explorer เนื่องจากยูทิลิตี้ทั่วไปของเหตุการณ์ jQuery จึงจำลองเหตุการณ์นี้เพื่อให้สามารถใช้งานได้โดยไม่คำนึงถึงเบราว์เซอร์ เหตุการณ์นี้ถูกส่งไปยังองค์ประกอบเมื่อตัวชี้เมาส์เข้าสู่องค์ประกอบ องค์ประกอบ HTML ใด ๆ สามารถรับเหตุการณ์นี้ได้