2011-07-06 35 views
0

我有一個ASP.NET自定義服務器控制菜單,在主頁面的頭部有以下jQuery。問題是,當我有一個常規窗體上的按鈕時,它會導致母版頁中的側邊菜單中的幻燈片操作每次在窗體中單擊時被激活......我如何防止這種情況發生,以便僅滑動操作發生在初始頁面加載或單擊不同的男性項目時?主頁面中的jQuery幻燈片菜單

$(document).ready(function() { 
    // Expand/Collapse All 
    $('#example1 .expand_all').click(function() { 
     $('#menu1 > li > a.collapsed').addClass('expanded').removeClass('collapsed').parent().find('> ul').slideDown('medium'); 
    }); 
    $('#example1 .collapse_all').click(function() { 
     $('#menu1 > li > a.expanded').addClass('collapsed').removeClass('expanded').parent().find('> ul').slideUp('medium'); 
    }); 
    // Slide 
    $("#menu1 > li > a.expanded + ul").slideToggle("medium"); 
    $("#menu1 > li > a").click(function() { 
     $(this).toggleClass("expanded").toggleClass("collapsed").parent().find('> ul').slideToggle("medium"); 
    }); 
}); 

回答

2

您是否試過使用.one()?也許這將幫助:.one()

編輯: 我不知道這是否是解決它的最好方法:

<asp:HiddenField ID="isloaded" runat="server" Value="false" EnableViewState="true" /> 

$(document).ready(function() { 
    var isLoaded = document.getElementById("isloaded").value; 
    if (isLoaded == "false") { 
     //your code 
     document.getElementById("isloaded").value = "true"; 
    } 
}); 
+0

它添加到防止從所有工作滑動的slideToggle方法:$( '#menu1> li> a.expanded + ul')。one.slideToggle('medium'); – IrishChieftain

+0

我的意思是像這樣使用它:$(document).ready(function(){/ * do something * /})。one() 如果這不起作用,您可以嘗試使用隱藏字段來保存狀態你的菜單(類似isLoaded)。如果菜單已經加載,則不要執行動畫。 –

+0

好吧,我試過了...但菜單滑塊仍然激活時,單擊一個簡單的表單按鈕... – IrishChieftain