Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery “如何修复”;TypeError:$不是函数;WordPress自定义页面出错?_Jquery_Html_Wordpress - Fatal编程技术网

Jquery “如何修复”;TypeError:$不是函数;WordPress自定义页面出错?

Jquery “如何修复”;TypeError:$不是函数;WordPress自定义页面出错?,jquery,html,wordpress,Jquery,Html,Wordpress,我通过插件创建了自定义WordPress页面,我想在其中使用此代码切换开/关评论 <script type="text/javascript"> $("comment_switch").click(function () { $("comments").toggleClass("hidden"); }); </script> $(“注释开关”)。单击(函数(){ $(“注释”).toggleClass(“隐藏”);

我通过插件创建了自定义WordPress页面,我想在其中使用此代码切换开/关评论

<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>