.load jquery函数在使用特定div时不起作用

时间:2011-03-09 23:52:00

标签: jquery load

此行不起作用

$('#bookcontainer').load( startSlide );

虽然这行

$(window).load( startSlide );

#bookcontainer是包含四张图片的div

这是我的整个代码:

// JavaScript Document
$('#bookcontainer').load( startSlide );

var slide;

$('#slider').hover( 
function() {
        $('.arrow').show();
}, 
function() {
        $('.arrow').hide();
});

function startSlide() {
    $('.book').show();
    slide = setInterval(slideR, 5000);   
}


function slideR() {
    $('.book').first().css('left', '960px').appendTo('#bookcontainer').animate(
    {
        "left": "-=960px"
    }, {
        duration: 1000,
        easing: 'easeOutCubic'
    });

}


function slideL() {
    $('.book').last().animate(
    { "left":"+=960px" }, {
        duration: 1000,
        easing: 'easeOutCubic',
        complete: function() {
        $(this).prependTo('#bookcontainer').css('left', '0px');   
        }
    });

}


function right() {
    clearInterval(slide);
    slideR();
    startSlide();
};


function left() {
    clearInterval(slide);
    slideL();
    startSlide();
};

3 个答案:

答案 0 :(得分:6)

加载事件只能在与网址关联的元素上处理。来自documentation

  

将load事件发送给元素   当它和所有子元素一直存在时   完全装满了。这个事件可以   发送到与a关联的任何元素   网址:图片,脚本,框架,iframe,   和窗口对象。

如果您要等待加载所有图像,可以将事件处理程序单独应用于这些图像。

此外:在页面上的所有元素都已完全加载(包括图形)之前,不会触发$(window).load(...),因此不必将事件绑定到div以确保子元素已加载

如果您正在发出AJAX请求并尝试检测何时将内容加载到div中,则应该startSlide成功回调您的AJAX请求。

答案 1 :(得分:0)

您应该使用$('#bookcontainer').load('url', startSlide );查看http://api.jquery.com/load/

答案 2 :(得分:-1)

div元素不会触发load事件。