2009-10-01 64 views
0
// accordion 
    $("#left-nav .block h2").click(function(){ 
     $(this).next("div").slideToggle("fast", function() { 
      alert("hey"); 
      $("#left-nav, #content, #aside").equalHeight(); 
     }) 
     .siblings("div:visible").slideUp("fast"); 
     $(this).toggleClass("active"); 
     $(this).siblings("h2").removeClass("active"); 
    }); 
    $("#left-nav .block h3").toggle(function(){ 
     $(this).next("ul").slideToggle("fast"); 
     $(this).removeClass("active"); 
    }, function() { 
     $(this).next("ul").slideToggle("fast"); 
     $(this).toggleClass("active"); 
     $(this).siblings("h3").removeClass("active"); 
    }); 

警報有效,但列未調整大小。這是equalHeight功能:slideToggle回調函數

jQuery.fn.equalHeight=function() { 
var maxHeight=0; 
this.each(function(){ 
if (this.offsetHeight>maxHeight) {maxHeight=this.offsetHeight;} 
}); 
this.each(function(){ 
$(this).height(maxHeight + "px"); 
if (this.offsetHeight>maxHeight) { 
    $(this).height((maxHeight-(this.offsetHeight-maxHeight))+"px"); 
} 
}); 
}; 

順便說一句,我的手風琴菜單能改寫得更好嗎?

非常感謝!

+1

您是否嘗試在回調中放入警報以查看它是否到達它。如果確實如此,那麼我們之後的代碼在您的equalHeight函數中。 – Colin 2009-10-01 02:59:40

+0

警報工作,但不是equalheight功能 – 3zzy 2009-10-01 03:16:25

回答

0
jQuery.fn.equalHeight=function() { 
    var maxHeight=0; 
    this.each(function(){ 
    if ($(this).height() > maxHeight) { 
     maxHeight = $(this).height(); 
    } 
    }); 
    return this.each(function() { 
    $(this).height(maxHeight); 
    }); 
}; 

注意:確保在您的手風琴代碼中調用它之前已經定義了它。

如果一切都失敗,請嘗試使用plugin

+0

也不起作用。這是equalhight函數的問題嗎? – 3zzy 2009-10-01 03:49:28

+1

如果你得到一個equalHeight的錯誤不是一個函數,因爲你在定義它之前調用它。 – Colin 2009-10-01 04:03:36