问问题
75 次
1 回答
0
您编写的代码中有一些语法错误。
does this line of code "var count = showing.parent().parent();"
point to the div #slider
是的,它指向滑块 div。
更好的 ..showing.closest('div');
我认为这没有任何意义
showing.parent().parent().next().children(':second');
根据上面的HTML,这将获得不存在的第二个孩子..next div
也closest('#Slider').children(':second');
没有任何意义。。
完整代码..经过一些假设
function slideShow() {
var showing = $('#slider .is-showing');
var count = showing.closest('div');
var next = count.next('div').length
? showing.closest('div').next('div').children(':first')
: count.find('img');
showing.fadeOut(800, function() {
next.fadeIn(800).addClass('is-showing');
}).removeClass('is-showing');
setTimeout(slideShow, 5000);
}
更新
你说下一个 div 不存在,
我的意思是说.children(':second');
没有任何意义(不是 div 上的下一个),因为每个 div 只有一个子元素,即锚元素。.children() 将获得直接的孩子而不是嵌套的孩子..
第一张图片是一个“正在展示”的类,然后他使用 .next() 来获取下一个 img 元素
这对上面的 HTML 不起作用,因为 next 会得到直接的兄弟,当你对图像执行 .next() 时,你什么也得不到,因为图像没有兄弟。
为什么我们要在淡入淡出函数中添加和删除类(正在显示)
因为淡出功能是异步的..所以你需要在回调中做到这一点。否则会立即反映。
于 2012-11-13T00:48:44.740 回答