2016-05-18 151 views
2

我有一個側邊欄有問題。問題是,當我將鼠標懸停在邊欄上時,它會緩慢地正常工作,但當我將鼠標快速移動時,它會混亂。我該如何解決它?jquery快速懸停問題

這是我的HTML:

<div class="sidebar"> 
     <ul class="insidenav"> 
      <li class="purple"> 
       <a href="" class="link purple"><span>ابر پژوهیار</span></a> 
       <ul style="display: none;" class="insidenavsubmenu"> 
        <li><a href="">کتابخانه من</a></li> 
        <li><a target="_blank" href="">اطلاعات کاربر</a></li> 
        <li><a href="">مشخصات کاربر</a></li> 
        <li><a href="">اطلاعات حساب</a></li> 
        <li><a target="_blank" href="">تغیر کلمه عبور</a></li> 
        <li><a href="">خروج</a></li>  
       </ul> 
      </li> 
      <li class="green"> 
       <a href="" class="link green"> 
        <span>فراداده‌های موضوعی</span> 
       </a> 
      </li> 
      <li class="blue"> 
       <a href="" class="link blue"> 
        <span>استناددهی آنلاین</span>       
       </a> 
      </li> 
      <li class="darkorange">       
       <a class="link darkorange"><span>دانشنامه استناددهی</span></a> 
       <ul style="display: none;" class="insidenavsubmenu"> 
        <li><a href="">همزمان‌سازی</a></li> 
        <li><a href="">شیوه نگارش مقاله</a></li> 
        <li><a href="">شیوه نگارش پایان نامه</a></li> 
        <li><a href="">استناددهی</a></li> 
        <li><a href="">بیشتر بدانیم...</a></li> 
        <li><a href="">مثال های استناددهی</a></li> 
       </ul> 
      </li> 
      <li class="orange">       
       <a href="" class="link orange"><span>خرید آنلاین</span></a> 
       <ul style="display: none;" class="insidenavsubmenu"> 
        <li><a target="_blank" href="">خرید و دریافت پستی</a></li> 
        <li><a href="">خرید و دریافت آنلاین</a></li> 
        <li><a target="_blank" href="">خرید «پژوهیار» از دیجی‌کالا</a></li> 
       </ul> 
      </li> 
      <li class="red">        
       <a class="link red"><span>کارگاه‌های آموزشی</span></a> 
       <ul style="display: none;" class="insidenavsubmenu"> 
        <li><a href="">کارگاه‌های آموزشی برگزار شده</a></li> 
        <li><a href="">شرایط کارگاه‌های آموزشی</a></li> 
        <li> 
         <a>ثبت نام</a> 
         <ul class="dubinsidenavsubmenu"> 
          <li><a href="">فرم ثبت نام تربیت مدرس</a></li> 
          <li><a href="">فرم ثبت نام کارگاه سازمانی</a></li> 
          <li><a href="">فرم ثبت نام کارگاه عمومی</a></li> 
         </ul> 
        </li> 
       </ul> 
      </li> 
      <li class="lightgreen">       
       <a class="link lightgreen"><span>شبکه مدرسان</span></a> 
       <ul style="display: none;" class="insidenavsubmenu"> 
        <li><a href="">استان‌های فعال</a></li> 
        <li><a href="">رزومه مدرسان</a></li> 
        <li><a href="">شرایط جذب مدرس</a></li> 
       </ul> 
      </li> 
      <li class="darkbrown">       
       <a class="link darkbrown"><span>سفارشی‌سازی</span></a> 
       <ul class="insidenavsubmenu"> 
        <li><a href="">درج شیوه‌نامه در نرم‌افزار</a></li> 
        <li> 
         <a href=""> 
          حمایت از وبگاه‌ها 
         </a> 
        </li> 
        <li> 
         <a href=""> 
          درج کتابخانه موضوعی          
         </a> 
        </li> 
       </ul> 
      </li> 
     </ul> 
    </div>    

,這是我的js:

jQuery(window).load(function() { 
    $('ul.insidenav > li').hover(function() { 
     if ($(this).find('ul.insidenavsubmenu').length > 0) { 
      $(this).find('ul.insidenavsubmenu').slideDown('1000'); 
      $(this).addClass('arrow-down'); 
     } 
    },function() { 
     if ($(this).find('ul.insidenavsubmenu').length > 0) { 
      $(this).find('ul.insidenavsubmenu').slideUp(); 
      $(this).removeClass('arrow-down'); 
     } 
    }); 
}); 

jQuery(window).load(function() { 
    $('ul.insidenavsubmenu > li').hover(function() { 
     if ($(this).find('ul.dubinsidenavsubmenu').length > 0) { 
      $(this).find('ul.dubinsidenavsubmenu').slideDown('1000'); 
      $(this).addClass('arrow-down'); 
     } 
    },function() { 
     if ($(this).find('ul.dubinsidenavsubmenu').length > 0) { 
      $(this).find('ul.dubinsidenavsubmenu').slideUp(); 
      $(this).removeClass('arrow-down'); 
     } 
    }); 
}); 

這是我的CSS:

.sidebar { 
    width: 18.75em; 
    height: 200px; 
    padding: 1.875em 0 1.375em 0; 
    float: right; 
    display: table; 
} 

.sidebar ul.insidenav {margin-bottom: 5px;display: inline;} 
.sidebar ul.insidenav li.purple {background-color: #9b59b6;} 
.sidebar ul.insidenav li.green {background-color: #6fba45;} 
.sidebar ul.insidenav li.blue {background-color: #38afe2;} 
.sidebar ul.insidenav li.darkorange {background-color: #e8a061;} 
.sidebar ul.insidenav li.orange {background-color: #f1c40f;} 
.sidebar ul.insidenav li.red {background-color: #e65947;} 
.sidebar ul.insidenav li.lightgreen {background-color: #1ac98f;} 
.sidebar ul.insidenav li.darkbrown {background-color: #a07e95;} 
.sidebar ul.insidenav li.other1 {background-color: #3E5F8A;} 
.sidebar ul.insidenav li.other2 {background-color: #3E5F8A;} 
.sidebar ul.insidenav li.other3 {background-color: #3E5F8A;} 
.sidebar ul.insidenav li ul.insidenavsubmenu{ 
    color: #fff; 
    display: none; 
    margin-right: 65px; 
    padding-bottom: 5px;  
} 
.sidebar ul.insidenav li ul.insidenavsubmenu li a{color: #fff;cursor: pointer;font: 8pt IRANSans;} 
.sidebar ul.insidenav li ul.insidenavsubmenu li ul.dubinsidenavsubmenu{ 
    color: #fff; 
    display: none; 
    margin-right: 15px; 
    padding-bottom: 5px;  

} 
.sidebar ul.insidenav li ul.insidenavsubmenu li ul.dubinsidenavsubmenu li a{color: #fff;} 
+0

如果你爲此創建的jsfiddle這將是更好的。如果可能的話,請分享css – Dhwani

+0

嘗試在一個懸停功能中結合您的腳本。 –

+0

您使用哪個css進行側邊欄?引導? – Dhwani

回答

1

以下是正常工作的示例。

jQuery(window).load(function() { 
 
    $('ul.insidenav > li').hover(function(e) { 
 
    if ($(this).find('ul.insidenavsubmenu').length > 0) { 
 
     $(this).find('ul.insidenavsubmenu').stop(true).slideDown('1000'); 
 
     $(this).addClass('arrow-down'); 
 
    } 
 
    }, function() { 
 
    if ($(this).find('ul.insidenavsubmenu').length > 0) { 
 
     $(this).find('ul.insidenavsubmenu').stop(true).slideUp(); 
 
     $(this).removeClass('arrow-down'); 
 
    } 
 
    }); 
 
}); 
 

 
jQuery(window).load(function() { 
 
    $('ul.insidenavsubmenu > li').hover(function(e) { 
 
    if ($(this).find('ul.dubinsidenavsubmenu').length > 0) { 
 
     $(this).find('ul.dubinsidenavsubmenu').stop(true).slideDown('1000'); 
 
     $(this).addClass('arrow-down'); 
 
    } 
 
    }, function() { 
 
    if ($(this).find('ul.dubinsidenavsubmenu').length > 0) { 
 
     $(this).find('ul.dubinsidenavsubmenu').stop(true).slideUp(); 
 
     $(this).removeClass('arrow-down'); 
 
    } 
 
    }); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div class="sidebar"> 
 
    <ul class="insidenav"> 
 
    <li class="purple"> 
 
     <a href="" class="link purple"><span>ابر پژوهیار</span></a> 
 
     <ul style="display: none;" class="insidenavsubmenu"> 
 
     <li><a href="">کتابخانه من</a> 
 
     </li> 
 
     <li><a target="_blank" href="">اطلاعات کاربر</a> 
 
     </li> 
 
     <li><a href="">مشخصات کاربر</a> 
 
     </li> 
 
     <li><a href="">اطلاعات حساب</a> 
 
     </li> 
 
     <li><a target="_blank" href="">تغیر کلمه عبور</a> 
 
     </li> 
 
     <li><a href="">خروج</a> 
 
     </li> 
 
     </ul> 
 
    </li> 
 
    <li class="green"> 
 
     <a href="" class="link green"> 
 
     <span>فراداده‌های موضوعی</span> 
 
     </a> 
 
    </li> 
 
    <li class="blue"> 
 
     <a href="" class="link blue"> 
 
     <span>استناددهی آنلاین</span> 
 
     </a> 
 
    </li> 
 
    <li class="darkorange"> 
 
     <a class="link darkorange"><span>دانشنامه استناددهی</span></a> 
 
     <ul style="display: none;" class="insidenavsubmenu"> 
 
     <li><a href="">همزمان‌سازی</a> 
 
     </li> 
 
     <li><a href="">شیوه نگارش مقاله</a> 
 
     </li> 
 
     <li><a href="">شیوه نگارش پایان نامه</a> 
 
     </li> 
 
     <li><a href="">استناددهی</a> 
 
     </li> 
 
     <li><a href="">بیشتر بدانیم...</a> 
 
     </li> 
 
     <li><a href="">مثال های استناددهی</a> 
 
     </li> 
 
     </ul> 
 
    </li> 
 
    <li class="orange"> 
 
     <a href="" class="link orange"><span>خرید آنلاین</span></a> 
 
     <ul style="display: none;" class="insidenavsubmenu"> 
 
     <li><a target="_blank" href="">خرید و دریافت پستی</a> 
 
     </li> 
 
     <li><a href="">خرید و دریافت آنلاین</a> 
 
     </li> 
 
     <li><a target="_blank" href="">خرید «پژوهیار» از دیجی‌کالا</a> 
 
     </li> 
 
     </ul> 
 
    </li> 
 
    <li class="red"> 
 
     <a class="link red"><span>کارگاه‌های آموزشی</span></a> 
 
     <ul style="display: none;" class="insidenavsubmenu"> 
 
     <li><a href="">کارگاه‌های آموزشی برگزار شده</a> 
 
     </li> 
 
     <li><a href="">شرایط کارگاه‌های آموزشی</a> 
 
     </li> 
 
     <li> 
 
      <a>ثبت نام</a> 
 
      <ul class="dubinsidenavsubmenu"> 
 
      <li><a href="">فرم ثبت نام تربیت مدرس</a> 
 
      </li> 
 
      <li><a href="">فرم ثبت نام کارگاه سازمانی</a> 
 
      </li> 
 
      <li><a href="">فرم ثبت نام کارگاه عمومی</a> 
 
      </li> 
 
      </ul> 
 
     </li> 
 
     </ul> 
 
    </li> 
 
    <li class="lightgreen"> 
 
     <a class="link lightgreen"><span>شبکه مدرسان</span></a> 
 
     <ul style="display: none;" class="insidenavsubmenu"> 
 
     <li><a href="">استان‌های فعال</a> 
 
     </li> 
 
     <li><a href="">رزومه مدرسان</a> 
 
     </li> 
 
     <li><a href="">شرایط جذب مدرس</a> 
 
     </li> 
 
     </ul> 
 
    </li> 
 
    <li class="darkbrown"> 
 
     <a class="link darkbrown"><span>سفارشی‌سازی</span></a> 
 
     <ul class="insidenavsubmenu"> 
 
     <li><a href="">درج شیوه‌نامه در نرم‌افزار</a> 
 
     </li> 
 
     <li> 
 
      <a href=""> 
 
          حمایت از وبگاه‌ها 
 
         </a> 
 
     </li> 
 
     <li> 
 
      <a href=""> 
 
          درج کتابخانه موضوعی          
 
         </a> 
 
     </li> 
 
     </ul> 
 
    </li> 
 
    </ul> 
 
</div>

0

你應該改變slideDown時間1000,這將立即下降。

$(this).find('ul.dubinsidenavsubmenu').slideDown({duration:10}); 

你也可以從這個question接受幫助。