此错误只能由以下三种情况之一引起:
您的 javascript 文件未在您的页面中正确加载 您的 jQuery 版本已失效。 这可能是由于有人编辑核心文件,或者插件可能覆盖 $variables。 您可以在页面完全加载之前运行 JavaScript,为此,在 jQuery 完全加载之前运行 JavaScript。
您应该检查 Firebug Web 面板并查看文件是否确实正确加载。 如果没有,它将以蓝色突出显示,后跟“404”。 假设文件加载正确,这意味着问题是 2。
确保所有 jQuery JavaScript 代码都在代码块内运行,例如:
$(document).ready(function () { //your code here });
这将确保您的代码在 jQuery 初始化后加载。
最后要检查的是确保在加载 jQuery 之前没有加载任何插件。 插件扩展了“$”对象,因此如果您在加载 jQuery 核心之前加载插件,那么您将收到您所描述的错误。
注意:如果您正在加载的代码不需要 jQuery 来运行,则不需要将其放置在 jQuery 就绪处理程序中。 可以使用 document.readyState 来分隔代码。
可能是由于在调用jquery脚本之前调用了script标签。
这是由于 $ 未定义
将 jquery.js 放在脚本标签之前,它就会正常工作;)如下所示:
首先您需要确保 jQuery 脚本已加载。 这可能来自 CDN 或您网站上的本地内容。 如果您在尝试使用 jQuery 之前没有加载它,它会告诉您 jQuery 未定义。
这可能位于页面的 HEAD 或页脚中,只需确保在尝试调用任何其他 jQuery 内容之前加载它即可。
那么你需要使用以下两种解决方案之一
(function($){ // your standard jquery code goes here with $ prefix // best used inside a page with inline code, // or outside the document ready, enter code here })(jQuery);
任何一个
jQuery(document).ready(function($){ // standard on load code goes here with $ prefix // note: the $ is setup inside the anonymous function of the ready command });
注意多次 $(document).ready(function(){//codehere}); 很难做到正确,尤其是在 WordPress 中。
如果 jQuery 插件调用位于对面,但脚本在此之前加载,则代码应在 window.onload 风暴之后运行jquery $未定义,如下所示:
window.onload = function() { //YOUR JQUERY CODE }
因此,您的代码只会在加载窗口后、加载所有资源后运行。 此时,jQuery($)将被定义。
假设你使用这个:
$(document).ready(function () { //YOUR JQUERY CODE });
$ 当前未定义,因为它是在加载 jQuery 之前调用的,但您的脚本将在控制台的第一行失败。
我只是做了同样的事情,发现我拥有了很多
type="text/javascript"
所以他们正在加载,但没有进一步提示为什么它不起作用。 不用说jquery $未定义,正确的拼写解决了问题。
在视图和主布局中使用脚本部分。
将视图中定义的任何脚本放入视图的“脚本”部分。 使用这些方法,您可以在加载所有其他脚本后加载主布局。 这是启动新的 MVC5web 项目时的默认设置。 不确定早期版本。
查看/Shell/MyView.cshtml:
// The rest of your view code above here. @section Scripts { // Either render the bundle defined with same name in BundleConfig.cs... @Scripts.Render("~/bundles/myCustomBundle") // ...or hard code the HTML. $(document).ready(function () { // Do your custom javascript for this view here. Will be run after // loading all the other scripts. }); }
查看/分享/_Layout.cshtml
@Scripts.Render("~/bundles/jquery") @Scripts.Render("~/bundles/bootstrap") @RenderSection("scripts", required: false)
请注意脚本部分如何在主布局文件中最后呈现。
你使用其他 JavaScript 库吗? 如果是这样,您可能需要在兼容模式下使用 jQuery:
确保您确实加载了 jQuery,它不是 jQuery - 这是 UI!
这是正确的 jQuery 脚本源代码:
如上所述,这是由于 $variables 中的冲突而发生的。
我通过为 jQuery 保留一个不冲突的辅助变量解决了这个问题。
var $j = jQuery.noConflict();
之后在任何地方使用它
$j( "div" ).hide();
发表评论