我試圖從<ul>
中將<li>
設爲目標,並給它們一個懸停事件。jQuery - .hover()在子元素上觸發
不幸的是,<li>
s包含一些其他<div>
s,它們位於<li>
本身之外。
問題發生在.hover()事件發生時,我將鼠標懸停在兒童<div>
上,因爲它們是DOMwise,它們是兒童,儘管設計/幾何圖形看起來完全像是一個不同的元素。
當光標移過0本身和它的子元素NONE時,是否有任何方式或任何其他事件可用?
在此先感謝。
我試圖從<ul>
中將<li>
設爲目標,並給它們一個懸停事件。jQuery - .hover()在子元素上觸發
不幸的是,<li>
s包含一些其他<div>
s,它們位於<li>
本身之外。
問題發生在.hover()事件發生時,我將鼠標懸停在兒童<div>
上,因爲它們是DOMwise,它們是兒童,儘管設計/幾何圖形看起來完全像是一個不同的元素。
當光標移過0本身和它的子元素NONE時,是否有任何方式或任何其他事件可用?
在此先感謝。
這是爲了改變風格嗎? 如果是的話請嘗試使用CSS僞事件,而不是jQuery的,如:
li:hover
{
background-color:yellow;
}
另外,使用e.stopPropagation(),例如:
$(document).ready(function(){
$(".parent").click(function(){
// do whatever;
});
$(".child").click(function(e) {
e.stopPropagation();
});
});
不幸的是,我不認爲這個工程有懸停,但它使用mouseover和mouseout,這是懸停基本上使用。
可以使用event.target屬性來確定事件的發起者來實現:
$('li').hover(function (event) {
if ($(this).is(event.target)) {
// Your code here
}
});
AFAIK沒有對這個沒什麼標準,因爲DOM元素不必有任何大小和冒泡行爲通常是可取的
你不必爲每件事情都使用jquery。 if(this === event.target) 也是有效的。 – Tommyka
第二個人是一個年曆。謝謝! – magtak