我正在嘗試編寫一個JS函數(使用rails中的原型),當li被鼠標懸停時,它將在li中顯示隱藏的div。每個L1具有唯一的ID號碼,就像這樣:Javascript懸停內容顯示
<li id="100">
<div style="display:none;" id="hover-display-content">Content</div>
<div style="display:none;" id="more-hover-display-content">Content</div>
<div style="display:none;" id="even-more-hover-display-content">Content</div>
</li>
我不知道如何去,雖然這樣做,尤其是在JS只顯示該特定李隱藏elemenst。
我想是這樣的:
Event.observe(window, 'load', function() {
Event.observe($("li"), 'mouseover', function() {
var id = readAttribute("id")
id.getElementById("hover-display-content").style.display = "inline";
id.getElementById("more-hover-display-content").style.display = "inline";
id.getElementById("even-hover-display-content").style.display = "inline";
});
Event.observe($("li"), 'mouseout', function() {
var id = readAttribute("id")
id.getElementById("hover-display-content").style.display = "none";
id.getElementById("more-hover-display-content").style.display = "none";
id.getElementById("even-hover-display-content").style.display = "none";
});
});
但它似乎並不奏效。我哪裏錯了?
編輯:
我現在使用:
Event.observe(window, 'load', function() {
$$('li').invoke('observe', 'mouseover', function(event) {
this.children[0].toggle();
});
$$('li').invoke('observe', 'mouseout', function(event) {
document.children[0].toggle();
});
});
這部分工作,但我的代碼如下所示:
<ul>
<li>
<div style="display:hidden;">Hidden Div</div>
<div>More content that isn't hidden</div>
</li>
</ul>
當我側翻裏它顯示隱藏的div,但是如果我翻轉第二個div,它會再次隱藏註釋,即使這個div在li中。爲什麼?
其實我的元素確實以一個前綴開始,我只是爲了簡潔起見而將它取出。 – goddamnyouryan 2010-10-29 05:22:57
@Ryan:當你選擇並採取行動時很重要,這不是一件好事情......可能希望將代碼逐字回傳,減去保密的事情。 – prodigitalson 2010-10-29 05:25:39