有人可以在
javascript中写下一个非常简单的基本示例来概念化(并希望让我理解)jQuery插件设计模式是如何完成的以及它是如何工作的?
我对如何为jQuery创建插件不感兴趣(所以在这里根本没有jQuery代码).
我对一个简单的解释(可能有一些Javascript代码)感兴趣,以解释它是如何完成插件概念的.
Plz不回复我去阅读jQuery代码,我试过,但我太复杂了,否则我不会在这里发一个问题.
谢谢!
解决方法
jQuery有一个存储在名为fn的内部对象中的函数库.这些是你可以在每个jQuery对象上调用的.
当你执行$(“div.someClass”)时,你得到一个包含所有< div>的jQuery对象.那个班级的元素.现在你可以做$(“div.someClass”).each(someFunction)将someFunction应用到它们中的每一个.这意味着,each()是存储在fn中的函数之一(在本例中为内置函数).
如果扩展(添加到)内部fn对象,则会自动使用相同的语法提供自定义函数.让我们假设您有一个将所有元素记录到控制台的函数,称为log().您可以将此函数附加到$.fn,然后将其用作$(“div.someClass”).log().
附加到fn对象的每个函数都将以这样的方式调用:在函数体内,this关键字将指向您使用的jQuery对象.
通常的做法是在自定义函数的末尾返回它,这样方法链不会破坏:$(“div.someClass”).log().each(someFunction).
有几种方法可以将函数附加到$.fn对象,有些方法比其他对象更安全.一个非常安全的方法是:
jQuery.fn.extend({ foo: function() { this.each( function() { console.log(this.tagName); } ); return this; } })