通过在函数结构中传入$运算符,我认为我应该清楚地在代码中使用$。但是,它反而抛出“对象不是函数”错误。我有什么想法吗?
以下完整代码:
<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>
答案 0 :(得分:2)
你正在使用多个地方的元数据,如果存在冲突,为什么会在那里定义?
您应该做的是将所有代码包装在Wordpress的推荐DOM ready处理程序
中<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>