在加载时触发jQuery函数

时间:2011-12-07 21:33:34

标签: jquery

我有这个代码使div滑动打开和关闭,问题是我希望它默认打开。

$(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()
    })
};

如何在页面加载后触发它打开?

5 个答案:

答案 0 :(得分:0)

尝试window.onload = openSlider;

答案 1 :(得分: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();      
});

答案 2 :(得分: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来打开它。

答案 3 :(得分:0)

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

添加处理程序

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

触发事件。 在你的情况下你也可以像上面提到的那样调用openSlider,但是我已经进入了触发器示例,因此您可能知道将来可以以双向方式使用点击。

像你一样在你的代码中动态更改html是没有意义的。但是如果你想以任何理由坚持使用这个解决方案,那么在重新创建html之前首先在'a'上调用unbind,否则你可能会有内存泄漏。

答案 4 :(得分:-1)

为什么不简单地在$(document).ready中调用你的函数openSlider!