今天,我唯一关于jQuery的紧迫问题是关于何时使用jQuery.extend()
和jQuery.fn
(它用于插件)。罗勒高盛似乎在“Defining your own functions in jQuery”有一个解释,但由于某种原因,我仍然不满意,我有最好的信息。一旦我们开始与jQuery.fn
合作,我们就必须考虑是否应该建立一个完整的插件。这意味着三个问题:扩展,添加新功能和构建插件。应该有一个解释结合所有三个。这值得解释吗?我们有一个解释吗?jQuery:扩展,添加一个新功能并构建一个插件?
5
A
回答
7
我想你可能会觉得太辛苦。 :)
在jQuery的源 - 延伸()被定义一次并且在两个命名空间中使用:
jQuery.extend = jQuery.fn.extend = function() { .. };
从技术上讲,所有这些功能不是合并在一起的对象属性。
所以在最基本的使用情况下,您只需合并两个对象为单一对象(很像插件选项参数):
this.options = $.extend({}, defaultOptions, userOptions); // Just mergin' objects
平原上简$ || jQuery的命名空间的扩展功能只是将该函数添加为jquery名称空间中类似静态的函数。继承jQuery名称空间的函数通常是那些不需要元素进行操作的函数。这些函数就像isArray()和isFunction()以及更多。
var noWhiteSpace = $.trim(string); // No element needed
jQuery.fn或多或少地保留用于执行基于传递到jquery对象的元素的动作的函数。这些就像普通的插件,以及你在jQuery中习惯的大多数东西。
$('div').css('border', '1px solid green'); // Do work on a set of elements
更有趣的是,如果你看看jQuery源代码中的$ .data()函数。它在两个名称空间中定义。它首先在$命名空间中定义,并将and元素作为第一个参数。它稍后扩展到$ .fn,并简单地将第一个参数设为'this'。
希望这就是你要找的!
相关问题
- 1. 创建并扩展一个jQuery插件
- 2. 扩展一个jquery插件或在基础插件之上构建mixins?
- 3. 扩展一个rails插件
- 4. 扩展jQuery插件对象与功能
- 5. 扩展Laravel之刃:不能添加一个扩展
- 6. 向jQuery地图突出显示插件添加上一个/下一个功能
- 7. 创建一个扩展另一个PHP扩展的PHP扩展?
- 8. jQuery的$(这)一个插件功能
- 9. 向Elgg River添加一个新功能
- 10. 如何调用一个jQuery插件(创建新的插件)的功能?
- 11. 什么是添加一个jQuery插件
- 12. 添加变量到一个jQuery插件
- 13. 添加一个jQuery插件选项
- 14. jQuery扩展功能
- 15. 构建一个Wordpress插件
- 16. 它不能创建一个Chrome扩展
- 17. Phonegap - 为iOS扩展一个插件
- 18. ggplot2:添加一个新功能并强制它返回
- 19. 扩展一个jQuery原型
- 20. 哪个选项最好扩展一个特性1)添加一个属性或者2)创建一个新表?
- 21. jQuery验证插件添加成功类到另一个元素
- 22. 创建一个谷歌实验室般的扩展功能
- 23. 创建一个jQuery插件
- 24. php扩展,但有一个新的构造函数...可能吗?
- 25. WrapPanel为每个动态扩展控件创建一个新列
- 26. 将扩展方法添加到List并返回一个
- 27. 添加功能的tablesorter(jQuery插件)
- 28. 为Firefox扩展添加功能
- 29. 如何扩展一个jQuery插件的选项与数组
- 30. 如何从另一个覆盖方法扩展jquery插件?
我很感谢你的回答!我已经将YUI 2.x的遗留代码移植到jQuery中(可能),所以我必须认为“很难”;现在,当你有一堆“私有”支持时,需要构建一个插件功能为“公共”扩展功能---对吗? – rasx 2009-10-19 22:29:22
这将是使用插件的原因,是的! – 2009-10-19 22:44:51