想法是获取元素的宽度,然后根据大小进行操作。

function featureSliderLoad(){
    var feature = setInterval(function(){
        var adWidth = jQuery('#leaderboard div iframe').width();

        if(adWidth != 0 && adWidth != null){
            if(adWidth > 728){
                Do something
            } else {
                Do something else
            }
        }

        if(jQuery('#leaderboard div iframe').width() > 100){
            clearInterval(feature);
        }
    }, 2000);
});


这在大多数情况下都有效,但有时不起作用。如果像这样使用onload:

jQuery(window).load(function featureSliderLoad()


然后,它可以100%地起作用,但是我不必这样做,因为我有:

if(adWidth != 0 && adWidth != null)


这应该解决元素未加载并出现0或null的问题。

没有人看到我不使用(window).load时会停止工作的代码问题吗?

谢谢

最佳答案

这听起来像脚本在DOM在页面中完全呈现之前就已经执行了。如果要将Div元素注入页面后呈现中,则可能还会出现问题。这就是您的代码段Query(window).load(...起作用的原因,因为它防止在DOM完成呈现之前被调用。

我会将您的jQuery包装在documet.ready函数中,或者使用上面的内容来阻止代码执行,直到DOM完全呈现为止。否则会被击中或错过。

10-06 02:58