【问题标题】:jQuery script is loaded but nothing happenjQuery 脚本已加载,但没有任何反应
【发布时间】:2014-10-10 02:51:37
【问题描述】:

我正在使用这个脚本(按照视频教程),但什么也没发生,我也没有错误:

$(document).ready(function () {

var scrollTop = $(window).scrollTop();
var windowSize = $(window).height();
var appart = 50;

display(scrollTop, windowSize);

$(window).resize(function(){
    var windowSize = $(window).height();
});

$(window).scroll(function(){
    var scrollTop = $(window).scrollTop();
    display(scrollTop, windowSize);
});

function display(scrollTop, windowSize){

    $('.wp-post-image').each(function(){

        var elemTop = $(this).offset().top;

        if($(this).css('opacity') === 0 && (parseInt(elemTop) <= parseInt(scrollTop + windowSize - appart))){

            $(this).fadeTo(2000,1);

        }   

    }); 

}   

});

它应该在页面上滚动时显示我的内容(如延迟加载)。

我正在使用 wordpress。

我真的不明白为什么它不起作用。 谢谢。

【问题讨论】:

  • $(document).ready(function () 更改为 jQuery(document).ready(function ($)
  • 不会改变任何东西。脚本似乎已正确加载。此外,其他脚本也可以正常工作。我试图删除除此之外的所有其他脚本,但它没有改变任何东西。
  • 我明白了。 $(this).css('opacity') === 0 在这一行。 $(this).css('opacity') 实际上返回 "0"。所以,你需要将=== 更改为==
  • 还需要删除resize处理程序中的var,以便它设置更高范围的变量,而不是立即丢弃的新创建的局部变量。
  • 这看起来也有问题:parseInt(scrollTop + windowSize - appart)。如果这些值是数字(它们看起来是),则不需要parseInt()。也从这里删除parseInt()parseInt(elemTop)

标签: javascript jquery wordpress lazy-loading jquery-lazyload


【解决方案1】:

取自 WordPress Codex 的 this page

WordPress 附带的 jQuery 库设置为使用noConflict() 模式,以防止与 WordPress 可以使用的其他 JavaScript 库的兼容性问题。

noConflict()模式下,jQuery的全局$快捷方式不可用,需要使用:

jQuery(document).ready(function(){
    jQuery(#somefunction) ...
});

但是,如果您希望使用简短的 $ 而不是 jQuery,则可以在代码周围使用以下包装器:

jQuery(document).ready(function($) {
    // Inside of this function, $() will work as an alias for jQuery()
    // and other libraries also using $ will not be accessible under this shortcut
});

希望对您有所帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-10-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多