我决定写一个插件,但有一刻我不知道,我找不到相关的文档,所以我决定在这里问。
例如我们写的时候
$("#some_element").nameOfPlugin();
nameOfPlugin
中有很多功能,但some_element
如何与插件连接?
示例或某些文档的链接将非常有用。
感谢。
答案 0 :(得分:2)
nameOfPlugin
是原型方法,当插入脚本元素时,会扩展jQuery,因此任何jQuery对象都可以包含该方法。
nameOfPlugin
的所有内部代码都发生在该原型方法和定义的范围内。
使用Human而不是jQuery扩展jQuery的简单示例。
function Human(){};
Human.prototype.attack = function() { alert('attack') };
var john = new Human;
john.attack();
就$()
连接到它而言,$()
返回一个DOM元素数组(一个或多个)。插件在每个插件的上下文中被调用,因为对象拥有该方法,因为它是jQuery构造函数的一个实例,它拥有你一直添加的插件方法。
$('body').hide()
转换为使用document.body
DOM引用作为上下文调用jQuery.prototype.hide方法。
我建议阅读原型继承以了解这一点。一个好的资源是Eloquent JS,特别是chapter 8。
答案 1 :(得分:2)
在jQuery原型中,this
关键字表示所选元素。
F.ex:
$('#some_element').myPlugin();
$.fn.myPlugin = function() {
console.log(this); // this = #some_element (jQuery instance)
// looping through elements and returning the instance
// to allow further chaining:
return this.each(function() {
console.log(this) // this = #some_element (HTML element)
});
}
答案 2 :(得分:2)
我不知道如何搜索关于它的文档
让我的一天!
<强> http://www.jquery.com 强>
我花了整整5秒才到达http://docs.jquery.com/Plugins/Authoring。