如何将插件与元素绑定

时间:2010-08-02 06:58:07

标签: javascript jquery plugins

我决定写一个插件,但有一刻我不知道,我找不到相关的文档,所以我决定在这里问。

例如我们写的时候

$("#some_element").nameOfPlugin();

nameOfPlugin中有很多功能,但some_element如何与插件连接?

示例或某些文档的链接将非常有用。

感谢。

3 个答案:

答案 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