最简单的jQuery插件,为什么这不起作用?

最简单的jQuery插件,为什么这不起作用?

问题描述:

我必须缺少一些非常基本的东西&认为我需要一个纸板合作伙伴。 我已经为jQuery添加了一个新的方法,但是,正如在下面的萤火虫命令行体验中一样,它不起作用,因为该方法不存在。最简单的jQuery插件,为什么这不起作用?

jQuery教程都说要写这个代码,这有什么问题呢?

$.fn.bob = function() {alert('bob!');}

>()函数

$.bob()

>类型错误:$ .bob不是一个函数

$.fn引用jQuery函数$()

所以,你的功能就必须这样调用:

$('anything').bob(); 

您也可以直接扩展jQuery对象,并调用该函数,你打算:

$.bob = function(){ alert('bob!') } 
$.bob(); 
+0

感谢您的全面回答。我应该意识到这一点,但我现在抱着一个微弱的希望,我的失败有一天会帮助别人;-) – PandaWood 2013-02-26 23:09:51

+0

没问题。我相信你不是第一个问这个问题的! – 2013-02-26 23:33:17

你需要使用它jQuery对象上:

$('body').bob()

+0

权,当然。我很困惑,因为我想用$ .myAjax替换我的调用到$ .ajax - 就像静态调用一样。看起来像我需要$ .myAjax = function(){} – PandaWood 2013-02-26 01:57:48

+1

正如Frederik上面所说的那样,只需在'$ .myAjax()'而不是'$ .fn'上定义函数 – kennypu 2013-02-26 02:00:21