扩展jQuery是行不通的……?
我没有得到如何扩展jQuery …我有以下代码:
jQuery.fn.extend({ whatever : function () { alert('yeah'); } });
哪个应该给我一个$.whatever
函数,不是吗? 但当我检查它,或尝试运行它:zilch。
看看这个小提琴: http : //jsfiddle.net/66gpf/
我检查了文档 ,这对我来说似乎很好……所以,我做错了什么?
jQuery.fn
是对jQuery.prototype
的引用。 所以当你执行jQuery.fn.extend
,你会在prototype
添加一个属性, 而不是 jQuery本身。 所有jQuery实例都将存在whatever
函数。
jQuery.fn.extend({ whatever : function () { alert('yeah'); } }); $('#a_selector').whatever();
文档: http : //api.jquery.com/jquery.fn.extend/
PS如果您希望函数以$.whatever
而不是仅在jQuery对象实例上存在,则将其添加到$
而不是$.fn
。
jQuery.extend(jQuery, { whatever : function () { alert('yeah'); } }); $.whatever();
你需要使用$('body').html( typeof $('body').whatever );
因为它不会添加任何作为jQuery静态对象的属性
$('body').html(typeof $('body').whatever);
演示: 小提琴
- jQuery mobile的新更新需要运行Web服务器
- Javascript:<script src = jquery …仅当condition为true时
- jstree:未捕获的TypeError:无法读取未定义的属性’children’
- prevAlll()中每个div的不同css背景
- 4个切换按钮互相说javascript,但没有一个是好听众
- 如何保持服务器加载的数据不被Knockout JS在页面加载时“消隐”?
- 在div中获取锚点的href并将其应用于图像?
- 如何通过JQuery / Ajaxvalidation用户名/密码?
- 300ms延迟删除:使用fastclick.js vs使用ontouchstart