[英]<li> hover event on <div> inside
我在我的一個非常老的項目中使用了AJAX控制工具箱自動完成功能 。 鼠標懸停突出顯示時出現問題。
在有效的示例中,生成的<li>
標記獲取一個mouseover事件,該事件使用嵌入式css更改其背景顏色。 效果很好。 但是,當我從以下位置更改標記時:
<li>
Hello world
</li>
至
<li>
<div>Hello</div>
<div>world</div>
</li>
<li>
元素僅在我將鼠標懸停在div之一未覆蓋的一部分上時才會更改背景顏色。
由於我無法修改生成的(和縮小的)javasacript,因此我正在尋找一種快速而骯臟的修復程序。
我試圖更改元素的z索引,但沒有成功。 我還嘗試查找li的事件並將其添加到div中。 但是我找不到將jquery未添加的事件復制到另一個元素的方法。
這里的任何想法都非常感謝。
如果將縮小的javascript恢復為任何幫助,則在下面:
_highlightItem: function(item) {
/// <summary>
/// Highlights the specified item
/// </summary>
/// <param name="item" type="Sys.UI.DomElement" DomElement="true" mayBeNull="false" />
/// <returns />
var children = this._completionListElement.childNodes;
// Unselect any previously highlighted item
for (var i = 0; i < children.length; i++) {
var child = children[i];
if (child._highlighted) {
if (this._completionListItemCssClass) {
Sys.UI.DomElement.removeCssClass(child, this._highlightedItemCssClass);
Sys.UI.DomElement.addCssClass(child, this._completionListItemCssClass);
} else {
if (Sys.Browser.agent === Sys.Browser.Safari) {
child.style.backgroundColor = 'white';
child.style.color = 'black';
} else {
child.style.backgroundColor = this._textBackground;
child.style.color = this._textColor;
}
}
this.raiseItemOut(new AjaxControlToolkit.AutoCompleteItemEventArgs(child, child.firstChild.nodeValue, child._value));
}
}
// Highlight the new item
if(this._highlightedItemCssClass) {
Sys.UI.DomElement.removeCssClass(item, this._completionListItemCssClass);
Sys.UI.DomElement.addCssClass(item, this._highlightedItemCssClass);
} else {
if (Sys.Browser.agent === Sys.Browser.Safari) {
item.style.backgroundColor = 'lemonchiffon';
} else {
item.style.backgroundColor = 'highlight';
item.style.color = 'highlighttext';
}
}
item._highlighted = true;
this.raiseItemOver(new AjaxControlToolkit.AutoCompleteItemEventArgs(item, item.firstChild.nodeValue, item._value));
},
為什么不使用CSS添加所需的突出顯示?
li > div:hover {
/* Highlight Rule Here */
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.