【问题标题】:Class exists but jquery errors: TypeError $(...) is null类存在但 jquery 错误:TypeError $(...) is null
【发布时间】:2013-11-27 12:13:11
【问题描述】:

在网站 http://yn1[dot]nl 的底部有一个名为“Inloggen”的按钮。当您单击它时,应该会出现一个名为“userdata”的 div。出于某种神秘的原因,什么都没有发生。

萤火虫说:

TypeError: $(...) is null
Line: 46

该行包括:

$(".userdata").toggle("4000", function() { });

这有什么问题? div 存在并具有类名“userdata”。

【问题讨论】:

  • .toggle() 不会动画 4 秒,因为第一个参数是 Number,它表示动画时间(以毫秒为单位)或 jQuery.fx.speeds = { slow: 600, fast: 200, _default: 400 } 中的预定义属性之一
  • 即使只是 toggle() 也不起作用

标签: jquery typeerror


【解决方案1】:

错误信息很清楚:$(...) 返回null。这意味着$ 全局变量不能等于jQuery,因为jQuery 永远不会返回null(不管有问题的div 是否存在)。

确实,您的代码包含一个调用jQuery.noConflict 的无冲突脚本,它放弃了对$ 变量的控制。

解决方案:要么删除无冲突脚本(这可能会破坏其他东西,我不知道),要么写 jQuery 而不是 $

【讨论】:

  • 我在 jQuery(document) 中更改了 $(document)。但没有结果。在我将 $document 更改为 $ 之后,仍然没有显示 div。
  • @YolkNet:你的问题中没有$(document),所以我不知道你在说什么。您必须将 $ 更改为 jQuery everywhere (更好的是:在它引用 jQuery 的任何地方)。
  • 对不起,我的意思是我现在有了这个:jQuery.ready(function() { $(".inloggen").click(function() { $(".userdata").切换(); }); });
  • @YolkNet:无处不在
  • 确实是冲突。我用这段代码解决了它: $(document).ready(function() { var $ = jQuery.noConflict(); // Frontend inloggen $(".inloggen").click(function() { $(".userdata ").toggle(800); }); });
猜你喜欢
  • 2014-05-29
  • 2018-07-17
  • 2014-10-13
  • 1970-01-01
  • 1970-01-01
  • 2021-07-15
  • 2021-08-12
  • 1970-01-01
  • 2015-09-18
相关资源
最近更新 更多