此行不起作用
$('#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();
};
答案 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
事件。