Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/437.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
Javascript 是什么导致jQuery$(…)为空“;在某些页面上?_Javascript_Jquery_Null - Fatal编程技术网

Javascript 是什么导致jQuery$(…)为空“;在某些页面上?

Javascript 是什么导致jQuery$(…)为空“;在某些页面上?,javascript,jquery,null,Javascript,Jquery,Null,我有一些控制隐藏div的javascript。现在它可以在大多数页面上工作,但在其他使用其他javascript的页面上它不工作。。。我的js写得很差吗 $(document).ready(function() { $("#user-dropdown-toggle").live ('click', function() { $("#left-user-bar").addClass("open"); $("#user-dropdown-toggle").addClass("leag

我有一些控制隐藏div的javascript。现在它可以在大多数页面上工作,但在其他使用其他javascript的页面上它不工作。。。我的js写得很差吗

$(document).ready(function() {
$("#user-dropdown-toggle").live ('click', function() {
    $("#left-user-bar").addClass("open");
    $("#user-dropdown-toggle").addClass("league-judgement");
    $("body").addClass("league-judgement");
});
$(".league-judgement").live('click', function() {
  $("#left-user-bar").removeClass("open");
  $("#user-dropdown-toggle").removeClass("league-judgement");
  $("body").removeClass("league-judgement");
});
});
Firefox正在错误控制台中报告以下内容:

时间戳:4/18/2012 9:08:21 PM
错误:$(“#用户下拉切换”)为空

我要检查的第一件事是确保所有页面都包含jQuery。我假设是这样的,因为$(document).ready位没有问题,但您永远不知道


查看这篇文章了解更多信息:

jQuery中的
$
函数永远不会返回
null
,因此它可能是一个不同的非jQuery
$
函数。(是否使用了ASP.NET stuff或prototype.js或其他库?稍后声明的自定义
$
函数?)

我知道
$
本身不是
null
,因为例外情况会有所不同,例如:“$不是函数”。在本例中,浏览器表示表达式(
$(…)
)的结果为
null
,这导致我得出上述结论

尝试:

如果这样做有效,那么就是在“ready”事件之前(但是在
$(…).ready
之后,
$
被重击)。当然,
$
此时可能(但不太可能)已经不是jQuery了

要查看
$
是否为jQuery(使用Web开发人员控制台或Firebug):

  • $==jQuery
    通常应该为true,但它可能不取决于
    noConflict
  • $.fn.jquery
    $().jquery
    都应以字符串形式生成jquery版本
  • $
    (只需在控制台上指定功能即可“显示源代码”)
另一方面,我会缩进函数体(例如在“ready”回调中),以更清楚地看到它的开始/结束位置


愉快的编码。

您应该添加jquery脚本/include行


你在同一页上还提到了“其他JS”。。您应该检查它加载的JQuery版本是否与您正在使用的版本不同——覆盖库的导入版本……

谢谢您提供的信息。我从来都不知道我可以用Firebug做一些。导致我崩溃的javascript位于此处:正如您所看到的,它非常多。我不是js专家,所以我可能会尝试找到一个较小的js脚本来转换我表单中的bbcode。@PaulELI有一个可疑的东西:
函数$(元素){…}
,它覆盖了
$
(我认为它在
窗口的范围内,但最小化后很难分辨)看起来它可能与“Prototype.js”库的使用有关。不管怎么说,
函数($)
方法会起作用吗?如果不是,使用
jQuery
和not
$
是否解决了问题?这应该是非常“安全的”:
jQuery(函数($){/*使用$*/}的原始内容)
并且通常不受其他库的影响。。。我没有很好地理解你最初的帖子,并采取了不同的方向,但你最初的帖子现在很有意义。非常感谢,它修好了。这对于未来的js工作来说是个好消息。富文本编辑器使用的原型或任何库似乎是其他问题的罪魁祸首,因此我可能会继续替换它。
$(document).ready(function($) { // <-- note $ there
   ...
});
jQuery(function($) { // <-- note $ there
   ...
});