jQuery Uncaught TypeError : object is not a function. WordPress $ 对象冲突?

标签 jquery wordpress

通过在函数构造中传递 $ 运算符,我认为我应该可以清楚地在代码中使用 $ 。但是,它会抛出“对象不是函数”错误。你知道我做错了什么吗?

enter image description here

完整代码如下:

<script>
function isElementVisible($elementToBeChecked)
{
        var TopView = $(window).scrollTop();
        var BotView = TopView + $(window).height();
        var TopElement = $elementToBeChecked.offset().top;
        var BotElement = TopElement + $elementToBeChecked.height();
        return ((BotElement <= BotView) && (TopElement >= TopView));
}

jQuery(window).scroll(function($) {
        $( ".counter" ).each(function() {
                $this = $(this);
                isOnView = isElementVisible($(this));
                if(isOnView && !$(this).hasClass('Starting')){
                        $(this).addClass('Starting');
                        startTimer($(this));
                }
        });
});

function startTimer($this) {
        setTimeout(function(){
                $this.html($this.html() - 1);
                startTimer($this);
        }, 1000); 
}
</script>

最佳答案

您在多个地方使用了美元符号,如果存在冲突,为什么还要在那里定义它?

您应该做的是将所有代码包装在推荐的 WordPress DOM 就绪处理程序中

<script>

    jQuery(function($) {
        function isElementVisible($elementToBeChecked) {
                var TopView = $(window).scrollTop();
                var BotView = TopView + $(window).height();
                var TopElement = $elementToBeChecked.offset().top;
                var BotElement = TopElement + $elementToBeChecked.height();
                return ((BotElement <= BotView) && (TopElement >= TopView));
        }

        $(window).scroll(function() {
                $( ".counter" ).each(function() {
                        $this = $(this);
                        isOnView = isElementVisible($(this));
                        if(isOnView && !$(this).hasClass('Starting')){
                                $(this).addClass('Starting');
                                startTimer($(this));
                        }
                });
        });

        function startTimer($this) {
                setTimeout(function(){
                        $this.html($this.html() - 1);
                        startTimer($this);
                }, 1000); 
        }
    });

</script>

关于jQuery Uncaught TypeError : object is not a function. WordPress $ 对象冲突?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25106392/

相关文章:

javascript - 使用 JavaScript 的粘性侧边栏 - 仅在指定元素之前粘性

ruby - 如何通过带有动态事件记录类的 Ruby 脚本获取 WordPress 数据库表?

php - Hook Woocommerce 订单中的自定义价格

javascript - ajax 调用、wordpress 出现 404 错误

javascript - 将 JQuery slider 与标签对齐

javascript - 如何使用 jquery 在工具提示上显示 pdf 文件

javascript - 使用ajax提交表单

php - Wordpress 网站不会滚动

javascript - 使用 jQuery 删除链接文本

javascript - 尝试通过 jQuery ajax 调用加载 Google 图表