Jquery “如何修复”;TypeError:$不是函数;WordPress自定义页面出错?
我通过插件创建了自定义WordPress页面,我想在其中使用此代码切换开/关评论Jquery “如何修复”;TypeError:$不是函数;WordPress自定义页面出错?,jquery,html,wordpress,Jquery,Html,Wordpress,我通过插件创建了自定义WordPress页面,我想在其中使用此代码切换开/关评论 <script type="text/javascript"> $("comment_switch").click(function () { $("comments").toggleClass("hidden"); }); </script> $(“注释开关”)。单击(函数(){ $(“注释”).toggleClass(“隐藏”);
<script type="text/javascript">
$("comment_switch").click(function () {
$("comments").toggleClass("hidden");
});
</script>
$(“注释开关”)。单击(函数(){
$(“注释”).toggleClass(“隐藏”);
});
我把它放在
标签里。为了生成标签,我使用了标准的WordPress函数wp_head()代码>。当我查看页面的源代码时,我可以在标题部分看到
,我认为这足以使用jQuery
有人能帮我让jQuery代码工作吗?可以找到页面的全部源代码您可能缺少一些
类标记和DOM就绪函数
jQuery(function($) { // DOM is now ready and jQuery's $ alias sandboxed
$(".comment_switch").click(function () {
$(".comments").toggleClass("hidden");
});
});
您需要将javascript封装到在DOM就绪事件上执行的函数中
<script type="text/javascript">
$(function () {
$("comment_switch").click(function () {
$("comments").toggleClass("hidden");
});
});
</script>
$(函数(){
$(“注释开关”)。单击(函数(){
$(“注释”).toggleClass(“隐藏”);
});
});
(函数(){//1)删除“$”
$(“.comment_switch”)。单击(函数(){//2)添加“.”如果这是一个类或“#”//如果它是一个id
$(“.comments”).toggleClass(“隐藏”);
});
});
body
正常,但body在开始时(当DOM仍未读取时)或之前
?您是否检查了jQuery文件的路径,并确保其有效?jQuery很可能在noConflict模式下运行。试着用jQuery替换$来确认是的,是的:-)这两个问题你都是对的。我没有100%检查源代码,我可以理解点丢失了,但是你能解释一下为什么我必须使用jQuery(函数($)
?谢谢。@Radek很可能是因为wordpress使用了$。noConflict
,这使得$
不等于jQuery
。您可以将$
替换为jQuery
,以使您的代码正常工作,假设它就在结束正文标记之前。这个答案中的代码使它正常工作因为它在外部使用jQuery
,然后接受传递的参数(恰好是jQuery
)使用$
名称,然后在代码中使用该名称。@Radek我所做的是:获取窗口。jQuery
将$
指定为引用参数,这样在函数中$
就被指定为窗口jQuery引用。这是一种低级别的方式,在90%的情况下值得使用无冲突的方式。它可以防止您om再次键入jQuery
,而不是引用$
@Radek,除非使用了$.noConflict,这在wordpress中非常常见。@Radek有趣的阅读:请添加您建议的解决方案的说明。$不是函数,但您仍在调用它。@user3502626我不知道您是如何使用它的。@user3502626做这样的陈述,$
是jQuery的快捷方式,$
也是一个函数,$
我测试了你的代码,但它不起作用:$(function(){…})
但是,jQuery(function($){…})
有效。人们说$是jQuery的别名,但别名不起作用。这是因为您可能在noConflict
设置中配置了jQuery。只是因为您不了解某些东西的基本工作原理,您不能到处给出-1个答案。这与我无关。这是关于WordPress的。所以,正如您所说,用户可能已经在noConflict设置中配置了他的jquery,因此,Wordpress的情况可能就是这样。因此,通常情况下,您的代码给出的$is不是Wordpress中的函数错误。
<script type="text/javascript">
(function () { // 1) remove the "$"
$(".comment_switch").click(function () { // 2) add "." if this a class or "#" // if it is an id
$(".comments").toggleClass("hidden");
});
});
</script>