為什么我的setTimeout沒有延遲效果啊
/**
* Created by Administrator on 2017/5/15.
*/
$(document).ready(function () {
? ?var sub = $('#sub')
? ?var activeRow
? ?var activeMenu
? ?
? ?var timer
? ?var mouseInSub = false
? ?sub.on('mouseenter',function (e) {
? ? ? ?mouseInSub = true
? ?}).on('mouseleave',function (e) {
? ? ? ?mouseInSub = false
? ?})
? ?$('#test')
? ? ? ?.on('mouseleave','li',function (e) {
? ? ? ? ? ?sub.addClass('none')
? ? ? ? ? ?if(activeRow){
? ? ? ? ? ? ? ?activeRow.removeClass('active')
? ? ? ? ? ? ? ?activeRow=null
? ? ? ? ? ?}
? ? ? ? ? ?if(activeMenu){
? ? ? ? ? ? ? ?activeMenu.addClass('none')
? ? ? ? ? ? ? ?activeMenu=null
? ? ? ? ? ?}
? ? ? ?})
? ? ? ?.on('mouseenter','li',function (e) {
? ? ? ? ? ?sub.removeClass('none')
? ? ? ? ? ?if(!activeRow){
? ? ? ? ? ? ? ?activeRow=$(e.target).addClass('active')
? ? ? ? ? ? ? ?activeMenu = $('#' + activeRow.data('id'))
? ? ? ? ? ? ? ?activeMenu.removeClass('none')
? ? ? ? ? ? ? ?return
? ? ? ? ? ?}
? ? ? ? ? ?timer = setTimeout(function () {
? ? ? ? ? ? ? ?if(mouseInSub){
? ? ? ? ? ? ? ? ? ?return
? ? ? ? ? ? ? ?}
? ? ? ? ? ? ? ?activeRow.removeClass('active')
? ? ? ? ? ? ? ?activeMenu.addClass('none')
? ? ? ? ? ? ? ?activeRow = $(e.target)
? ? ? ? ? ? ? ?activeRow.addClass('active')
? ? ? ? ? ? ? ?activeMenu = $('#' + activeRow.data('id'))
? ? ? ? ? ? ? ?activeMenu.removeClass('none')
? ? ? ? ? ?},3000)
? ? ? ?})
});
2017-11-03
https://github.com/ccccccl/JD-has-no-delayed-menu?
?代碼不完全一樣,根據理解實現了功能。歡迎點贊。
2017-11-03
https://github.com/ccccccl/JD-has-no-delayed-menu?
?代碼不完全一樣,根據理解實現了功能。歡迎點贊。
2017-05-24
setInterval才是在函數外面進行調用,setTimeout要調用必須放在函數里面,這樣頁面加載函數時,定時器才會生效
不知我說的對不對,自己思考一下