Tôi đã tạo một menu sử dụng một số CSS và jquery để hiển thị các menu con của nó khi di chuột. Vấn đề là, nếu người dùng di chuột qua một mục menu nhiều lần, điều đó sẽ hơi buồn cười. Đây là URL:http://91.202.168.37/~ibi/ , đây là mã jquery (tài liệu nội bộ đã sẵn sàng):
if ($(window).width()>991) // tập lệnh menu máy tính để bàn hoặc máy tính xách tay
{
$('#mob-main-menu > li.menu-item-has-children').hover(function(event){
sự kiện.preventDefault();
$(this).children('a').toggleClass('bold600');
$(this).children('a').siblings('.sub-menu').slideToggle();
});
}
khác // tập lệnh menu thiết bị cảm ứng
{
$('#mob-main-menu > li.menu-item-has-children').click(function(event){
if ($(this).children('a').siblings('.sub-menu').css('display') == 'none')
{
sự kiện.preventDefault();
console.log('hidden');
}
$(this).children('a').toggleClass('bold600');
$(this).children('a').siblings('.sub-menu').slideToggle();
});
}
Tôi đã thử sử dụng hàm setTimeout() nhưng nó không hoạt động. Tôi có thể giới hạn mã xếp hàng không quá 2 lần, bất kể nó đếm bao nhiêu lần không? Thay vì đặt nó về 0 sau x khoảng thời gian? Bất kỳ ý tưởng nào khác để làm cho nó hoạt động tốt hơn sẽ được chấp nhận một cách vui vẻ.
Hãy thử sử dụng hàm .stop() để tạo hoạt ảnh, nó sẽ xóa hàng đợi hoạt ảnh để nó hoạt động tốt
$(this).children('a').siblings('.sub-menu').stop().slideToggle();
Tôi là một lập trình viên xuất sắc, rất giỏi!