无法在页面加载后让div层和javascript延迟几秒钟

时间:2013-08-06 04:08:00

标签: javascript jquery delay settimeout

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

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

<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>

2 个答案:

答案 0 :(得分: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()?
}

答案 1 :(得分:0)

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

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

如果不是这种情况,那么metadinings建议的答案必定是有帮助的。 感谢