我试图在wordpress中使用以下示例 - 我需要一个div来保存一个广告,例如,300px向下翻页,然后向上滚动页面直到它到达顶部,然后留在那里,如果用户继续向下滚动。这个例子应该解释一下:
这里它是一个html文件应该可以工作,一切似乎都存在,但它不起作用:http://www.altesc.net/exmp.html
事实上,如果你在“类似问题”框中查看并向下滚动,那正是我所追求的。
我很确定我已经完成了所有事情,但javascript似乎无法正常工作。如果我从jquery复制所有内容并将其直接添加到标题中,而不是在单独的js文件中,它可以工作,只有当我像这样调用jquery时才会这样:
<script src="http://code.jquery.com/jquery-1.7.1.js" type="text/javascript">
它未能开始。
关于什么是错的任何想法?
添加了我的标题以提供帮助:
<script type='text/javascript' src='http://www.altesc.net/wp-includes/js/jquery/jquery.js?ver=1.8.3'></script>
<script type="text/javascript">
//<![CDATA[
$(window).load(function(){
$(document).scroll(function() {
var useFixedSidebar = $(document).scrollTop() > 330;
$('.adscrollleft').toggleClass('fixedSidebar', useFixedSidebar);
});
});//]]>
</script>
答案 0 :(得分:1)
删除此内容:$(window).load(function(){
答案 1 :(得分:1)
正如我在该问题的评论中所说,你的jQuery包含文件,在最底层,调用jQuery.noConflict();
,释放$
速记函数引用jQuery()
。
因此,解决此问题的最直接方法是:
jQuery(window).load(function(){
jQuery(document).scroll(function() {
var useFixedSidebar = jQuery(document).scrollTop() > 330;
jQuery('.adscrollleft').toggleClass('fixedSidebar', useFixedSidebar);
});
});
现在您的代码正常运行。这是在我的计算机上运行的文件的Pastebin(请注意,如果你有一个非常大的屏幕,你不应该保持浏览器最大化):
有些人非常喜欢$
简写,所以你会看到很多:
// >>> The $ below <<<
jQuery(window).load(function($){
$(document).scroll(function() {
var useFixedSidebar = $(document).scrollTop() > 330;
$('.adscrollleft').toggleClass('fixedSidebar', useFixedSidebar);
});
});
jQuery允许您在范围内使用它。现在,只要你在全球范围内使用jQUery()
就习惯了。
答案 2 :(得分:0)
这里有几个问题:
首先,使用jQuery的本地副本。
虽然在线副本会一直保持不变,但最好是拥有自己的副本。以另一种方式来思考:如果jQuery网站出现故障怎么办?你正在“吮吸”的脚本也会崩溃,并使依赖于leeched jQuery的脚本失败。
首先加载库
脚本按顺序加载和解析,一个接一个(除非使用某些异步内容,如defer
或async
属性,或依赖加载器)。如果您的代码片段依赖于jQuery并且在 jQuery之前加载,那么它将失败。首先加载库脚本,然后加载依赖它的脚本。
快速了解我的意思:
<script src="jQuery.js"></script>
<script src="yourScriptThatDependsOnJQuery.js"></script>
<script>
//scripts that depend on jQuery
</script>
答案 3 :(得分:0)
您可以尝试使用此功能。
确保您的脚本被拉入页面,一种方法是使用Chrome调试器中的“来源”标签并在html主题部分中搜索其他文件
确保在包含jQuery之后已经包含了依赖脚本,因为它肯定依赖于它。
检查jQuery是否正确包含且仅一次。
注意jQuery caonflicts。还有一些其他的库覆盖了$,所以你的代码不能工作,因为$不再是jQuery的别名。您可以使用jQuery.noConflict()
来避免与页面上使用相同变量$的其他库发生冲突。