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 不是函数

jquery attr 设置属性 checked disabled 不起作用 改用prop

JQuery 属性包含选择器在 WebKit 中不起作用

jQuery html 属性在 IE 中不起作用

jQuery 属性选择器在 Internet Explorer 中不起作用