Bài đăng đầu tiên của tôi tại đây. Tôi muốn thực hiện một menu ngang với menu con trượt xuống trên di chuột qua. Tôi biết tôi có thể sử dụng jQuery nhưng điều này là để thực hành kỹ năng javascript của tôi.Các sự cố với nhiều lần cài đặt chạy đồng thời
tôi sử dụng đoạn mã sau:
var up = new Array()
var down = new Array()
var submenustart
function titleover(headmenu, inter)
{
submenu = headmenu.lastChild
up[inter] = window.clearInterval(up[inter])
down[inter] = window.setInterval("slidedown(submenu)",1)
}
function slidedown(submenu)
{
if(submenu.offsetTop < submenustart)
{
submenu.style.top = submenu.offsetTop + 1 + "px"
}
}
function titleout(headmenu, inter)
{
submenu = headmenu.lastChild
down[inter] = window.clearInterval(down[inter])
up[inter] = window.setInterval("slideup(submenu)", 1)
}
function slideup(submenu)
{
if(submenu.offsetTop > submenustart - submenu.clientHeight + 1)
{
submenu.style.top = submenu.offsetTop - 1 + "px"
}
}
Các submenustart biến được bổ nhiệm một giá trị trong một chức năng mà không phải là thích hợp cho câu hỏi của tôi.
HTML trông như thế này:
<table class="hoofding" id="hoofding">
<tr>
<td onmouseover="titleover(this, 0)" onmouseout="titleout(this, 0)"><a href="#" class="hoofdinglink" id="hoofd1">AAAA</a>
<table class="menu">
<tr><td><a href="...">1111</a></td></tr>
<tr><td><a href="...">2222</a></td></tr>
<tr><td><a href="...">3333</a></td></tr>
</table></td>
<td onmouseover="titleover(this, 1)" onmouseout="titleout(this, 1)"><a href="#" class="hoofdinglink">BBBB</a>
<table class="menu">
<tr><td><a href="...">1111</a></td></tr>
<tr><td><a href="...">2222</a></td></tr>
<tr><td><a href="...">3333</a></td></tr>
<tr><td><a href="...">4444</a></td></tr>
<tr><td><a href="...">5555</a></td></tr>
</table></td>
...
</tr>
</table>
gì sẽ xảy ra như sau:
Nếu tôi đi qua và ra (cho ex) menu dành cho nó hoạt động tốt. Nếu bây giờ tôi đi qua menu B, khoảng thời gian áp dụng cho A hiện được áp dụng cho B. Hiện tại có 2 hàm được áp dụng cho B. Một hàm ban đầu cho A và một hàm mới được kích hoạt bằng cách di chuột qua B. Nếu tôi đi cho A tất cả các khoảng thời gian hiện được áp dụng cho A.
Tôi đã tìm kiếm hàng giờ nhưng tôi hoàn toàn bị kẹt.
Xin cảm ơn trước.
đừng quên gọi 'clearInterval' khi bạn làm xong hoạt ảnh. –
Cảm ơn nhận xét, nhưng tôi đã nhận thức được điều này. Tôi đã thêm clearInterval này sau. –