2011-12-07 98 views
2

我有這段代碼讓div滑動打開和關閉,問題是我希望它默認打開。加載時觸發jQuery函數

$(document).ready(function() { 
    $('.slider').each(function() { 
     var current = $(this); 
     current.attr("box_h", current.height()); 
    }); 
    $(".slider").css("height", sliderHeight); 
    $(".slider_menu").html('<a href="javascript:void(0)">More <img src="images/more_down.gif" border="0"></a>'); 
    $(".slider_menu a").click(function() { 
     openSlider() 
    }); 
}); 

function openSlider() { 
    var open_height = $(".slider").attr("box_h") + "px"; 
    $(".slider").animate({ 
     "height": open_height 
    }, { 
     duration: "slow" 
    }); 

    $(".slider_menu").html('<a href="javascript:void(0)">Close <img src="images/more_up.gif" border="0"></a>'); 
    $(".slider_menu a").click(function() { 
     closeSlider() 
    }) 
}; 

function closeSlider() { 
    $(".slider").animate({ 
     "height": sliderHeight 
    }, { 
     duration: "slow" 
    }); 

    $(".slider_menu").html('<a href="javascript:void(0)">More <img src="images/more_down.gif" border="0"></a>'); 
    $(".slider_menu a").click(function() { 
     openSlider() 
    }) 
}; 

我怎樣才能觸發它打開一次頁面加載?

+1

是否有一個原因,您沒有使用.slideToggle()而不是你的手工製作的openSlider和closeSlider? –

回答

0

嘗試window.onload = openSlider;

0

就叫openSlider()document.ready

$(document).ready(function(){ 
    $('.slider').each(function() { 
       var current = $(this); 
       current.attr("box_h", current.height());});  
    $(".slider").css("height", sliderHeight); 
    $(".slider_menu").html('<a href="javascript:void(0)">More <img src="images/more_down.gif" border="0"></a>'); 
    $(".slider_menu a").click(function() { openSlider() });  
    openSlider();  
}); 
0

只需將它添加到你準備好了嗎功能:

$(document).ready(function(){ 
    $('.slider').each(function() { 
       var current = $(this); 
       current.attr("box_h", current.height());});  
    $(".slider").css("height", sliderHeight); 
    $(".slider_menu").html('<a href="javascript:void(0)">More <img src="images/more_down.gif" border="0"></a>'); 
    $(".slider_menu a").click(function() { openSlider() });   
    openSlider(); // <---------here 
}); 

,如果你可以不動畫你可以只設置默認CSS打開它。

+0

謝謝你的工作。 – user1086547

-1

你爲什麼不直接在$(document).ready?中調用你的函數openSlider!

0
$(".slider_menu a").click(function() { closeSlider() }) 

,增加了處理程序

$(".slider_menu a").click() 

觸發事件。 在你的情況下,你可能會打電話給openSlider像上面建議的傢伙,但我已經輸入了觸發器的例子,所以你可能知道在將來可以以兩種方式使用點擊。

像你這樣在你的代碼中動態地改變html是沒有意義的。但是,如果你想堅持這個解決方案,無論出於什麼原因,在你重新創建html之前首先調用'a'的解綁定,否則你可能會發生內存泄漏。