Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/414.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何将插件与元素绑定_Javascript_Jquery_Plugins - Fatal编程技术网

Javascript 如何将插件与元素绑定

Javascript 如何将插件与元素绑定,javascript,jquery,plugins,Javascript,Jquery,Plugins,我决定写一个插件,但有一刻我不知道,我找不到关于它的文档,所以我决定在这里询问 比如我们写 $("#some_element").nameOfPlugin(); nameOfPlugin中有很多函数,但是一些_元素是如何与插件连接的呢 一个例子,或者一些文档的链接将非常有用 谢谢。nameOfPlugin是一个原型方法,当与script元素一起插入时,它扩展了jQuery,因此任何jQuery对象都可以包含该方法 nameOfPlugin的所有内部代码都发生在该原型方法和定义的范围内 这是一个

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

比如我们写

$("#some_element").nameOfPlugin();
nameOfPlugin中有很多函数,但是一些_元素是如何与插件连接的呢

一个例子,或者一些文档的链接将非常有用

谢谢。

nameOfPlugin是一个原型方法,当与script元素一起插入时,它扩展了jQuery,因此任何jQuery对象都可以包含该方法

nameOfPlugin的所有内部代码都发生在该原型方法和定义的范围内

这是一个简单的示例,说明如何使用Human而不是jQuery扩展jQuery

function Human(){};
Human.prototype.attack = function() { alert('attack') };
var john = new Human;
john.attack();
只要$连接到它,$就返回一个或多个DOM元素的数组。插件会在每种方法的上下文中被调用,因为对象拥有该方法,因为它是jQuery构造函数的实例,该构造函数拥有您添加的插件方法

$'body'.hide转换为使用DOM引用的document.body作为上下文调用jQuery.prototype.hide方法


我建议阅读原型遗传来理解这一点。尤其是一个好的资源。

在jQuery原型中,this关键字表示所选的元素

例如:

我不知道如何搜索关于它的文档

让我开心


例如,我花了整整5秒钟才找到它。

实际上,jQuery背后的想法是隐藏所有丑陋的原型部分。我同意理解基本原理是个好主意,但我不确定这是否是一个好答案。他在问原型方法是如何与元素选择联系在一起的,这就是我解释的。谢谢。现在我知道我需要阅读更多的信息。这就是我在这里提问的原因。为什么这会被否决?很明显,这里有些老脾气。
$('#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)
  });
}