0

我一直试图让这个脚本在页面加载后延迟几秒钟,但无法让它工作。我知道这里似乎还有其他类似的问题得到了解答,但我已经尝试实施他们的解决方案,但到目前为止还没有任何运气。

我非常感谢您提供的任何帮助。提前致谢!

<script>
$.fn.rotate = function(){
return this.each(function() {
var $children = $(this).children();
var position = -1;
!function loop() {
    position = (position + 1) % $children.length;
    $children.eq(position)
             .fadeIn(1000)
             .delay(7000)
             .fadeOut(1000, loop);
}();
});
};

function show() {
AB = document.getElementById('.bannergroup');
AB.style.display = 'inline';
}
setTimeout("show()", 5000);

$(function(){
$(".banneritem").hide();
$(".bannergroup").rotate();
});  

</script>
4

2 回答 2

0

看看你上面的场景,我想你想在页面中所有元素完成加载时调用该函数。如果是这样,您可以使用:

    $(window).load(function(){
    //executes only when all the elements in the page finish loading like images.
     //write your stuff here 
    });

如果不是这种情况,metadinings 建议的答案一定会有所帮助。谢谢

于 2013-08-06T04:33:17.323 回答
0

这条线

$(function () {

是更具表现力的jQuery(document).ready函数的缩写,可以处理跨浏览器的DOMContentLoaded事件:

jQuery(document).ready(function () {

    // this is the place (to delay something)
    // after page parsed / document ready:
    setTimeout(show, 5000);
});

另一个加载事件是(也称为window.onload

jQuery(window).load(function () {

    // this is the place
    // after page and html images are loaded
});

我看到您还尝试通过典型的类标识符选择元素.bannergroup,您必须使用它getElementsByClassName('bannergroup')(不带点)。
然而,因为你有 jQuery,让我们做起来很简单:

function show() {
    $('.bannergroup').css({ display: 'inline' });
    // now .rotate()?
}
于 2013-08-06T04:19:19.013 回答