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

这条线不起作用

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

load事件只能在与url关联的元素上处理 从文档 :

当load和所有子元素已完全加载时,load事件将发送到元素。 此事件可以发送到与URL关联的任何元素:图像,脚本,框架,iframe和窗口对象。

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

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

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

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

div元素不会触发load事件。