jQuery 代码不起作用(属性不是函数)
Posted
技术标签:
【中文标题】jQuery 代码不起作用(属性不是函数)【英文标题】:jQuery code not working (property not a function) 【发布时间】:2013-07-21 02:52:45 【问题描述】:我想在我的 Wordpress 网站(Agera 模板)上的 the fiddle 中实现此代码。但是代码返回错误:
TypeError: 对象 [object Object] 的属性“$”不是函数
所以我把我的代码改成了这个(把 $ 换成 jQuery):
jQuery('a[href^="#"]').click(function()
jQuery('body').animate(
scrollTop: jQuery(jQuery(this).attr('href')).offset().top - 30
, 500);
);
不起作用。
我也尝试过(也将 $ 更改为 jQuery,两者都尝试过):
jQuery(document).ready(function()
$('a[href^="#"]').click(function()
$('body').animate(
scrollTop: $($(this).attr('href')).offset().top - 30
, 4000);
);
);
不起作用。如果我尝试成功实现 jQuery 的代码,它可以正常工作,就像页面上的所有其他 jQuery 一样。
可能是什么问题? html 标记是正确的。谢谢。
【问题讨论】:
看看api.jquery.com/jQuery.noConflict 尝试用 jQuery 替换 $ Tdelang,我写了我做了 您是否包含了 jquery.js 脚本? (并在上述代码之前包含它?) 模板中已经包含了,不然测试jquery的代码怎么返回结果? 【参考方案1】:您只需在click method
的末尾添加一个return false
,如下所示:
$('a[href^="#"]').click(function()
$('body').animate(
scrollTop: $($(this).attr('href')).offset().top
, 500);
return false;
);
当然,在加载 jQuery 之前......你可以看看这个小提琴:http://jsfiddle.net/WxJLx/29/
【讨论】:
阻止默认的锚点点击行为是一个明智的想法,但它对TypeError: Property '$' of object [object Object] is not a function
没有帮助
问题中提供的小提琴也有效。 OP 说相同的代码在 Wordpress 页面上不起作用。
是的,他的小提琴在工作,但也有错误。 @MP 你在代码之前加载了 jQuery 吗?
卢卡斯,我检查了弹出窗口并从 jquery 代码中回显文本的代码。一些简单的代码来检查实现是否正常。网站上的其他 jquery 对象正在工作..
是的。但是你可以,不是故意的,在加载 jquery 之前添加这段代码......我认为你必须检查是否是这种情况。【参考方案2】:
如果您使用的是旧版本的 jquery 1.4.2,您使用的是哪个版本的 jQuery,像这样添加
jQuery.noConflict();
【讨论】:
你得到 TypeError: Property '$' of object [object Object] is not a function jQuery(document).ready(function($) );在函数中传递 $ 作为参数 我说如果你使用的是 jQuery 的低版本然后使用 noConflict 但在更高版本中它已弃用。【参考方案3】:试试这个:
jQuery(document).ready(function($)
$('a[href^="#"]').click(function()
$('body').animate(
scrollTop: $($(this).attr('href')).offset().top - 30
, 4000);
);
);
【讨论】:
【参考方案4】:这个问题似乎与your other question 非常相似。
所以请准确告诉我们您想了解什么
-
您想了解动画的工作原理吗?那么请看this animate example,求更多解释
您的代码在 demo on plnkr.co 中有效 - 所以很难说它为什么不适合您。请详细说明您认为它不起作用的原因。
您是否希望我们在您的 Wordpress 网站(Agera 模板)中找到错误
TypeError: Property '$' of object [object Object] is not a function
的原因,然后提供更多信息甚至更好地链接到不起作用的页面会很有帮助。
关于第 2 点的代码
我只是稍微修改了你的代码:
jQuery(function($)
$('a[href^="#"]').click(function()
$('body').animate(
scrollTop: $($(this).attr('href')).offset().top -20
, 500);
return false;
);
);
如上所述,请参阅demo on plnkr.co
关于第 3 点
关于您遇到的错误消息TypeError: Property '$' of object [object Object] is not a function
- these answers may be of help 甚至更多this one mentions wordpress
请帮助我们帮助您
很抱歉提出以下问题,但在不知道您了解多少的情况下很难提供帮助
你知道events are and how they work吗? 你用过chrome dev tools吗?它们使发现错误变得容易。【讨论】:
不,jQuery中的菜鸟..我使用chrome工具,是的:) @MP 你的问题解决了吗? link 到TypeError: Property '$' of object [object Object] is not a function
有用吗?您还有其他问题吗?如果是这种情况,请链接到导致问题的特定页面?以上是关于jQuery 代码不起作用(属性不是函数)的主要内容,如果未能解决你的问题,请参考以下文章
jQuery插件不起作用……“类型错误:'undefined'不是一个函数”
返回 jQuery 承诺的 Vuex 动作不起作用,.fail 不是函数