- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
(function($) {
$.fn.myFunction = function(config) {
var defaults = {
setting1: 'myDiv',
setting2: ''
};
var config = $.extend(defaults, config);
//code here
};
})(jQuery)
$(document).ready(function() {
$.fn.myFunction({
setting1: 'myDiv',
setting2: ''
});
});
这就是我一直使用 jQuery 插件的方式,但我最近了解到它应该像这样使用:
$('#myDiv').myFunction({
setting1: 'myDiv',
setting2: ''
});
1) 我认为这允许将 $(this)
用于 $('#myDiv')
?
2) 是否需要$(document).ready(function()
?
3) 我一直使用这个 jQuery 函数的方式是否有任何不利之处?
4) 如果 $('#myDiv').myFunction()
是正确的用法,如果它只是一个在文档就绪时运行的函数,您将如何调用该函数 - 在这里查看我的用法:https://stackoverflow.com/a/12316349/1455709 .这仅仅是函数的错误使用吗?
最佳答案
调用 $.fn.myFunction()
和调用 $('#myDiv').myFunction()
是两件不同的事情。没有对错之分——这取决于你在做什么。
这本质上是一个静态函数,您可以根据需要像那样使用它。在 jQuery 世界中,.fn
就像 .prototype
所以 $.fn.myFunction()
就像调用 jQuery.prototype。我的函数()
。它是允许的,但它是一个与特定 jQuery 对象无关的静态函数调用。如果你只是想要一个静态函数调用,那么你可以这样做,但这通常不是 jQuery 原型(prototype)的使用方式,我一般不会推荐它。如果你只想要一个静态函数并想使用 jQuery 命名空间,你可以这样做:
$.myFunction = function(args) {/* your code here */};
然后像这样调用它:
$.myFunction();
因为根本不需要使用原型(prototype)。
$('#myDiv').myFunction()
原型(prototype)(例如 jQuery 世界中的 .fn
用于向实际的 jQuery 对象添加方法。
当您执行此操作时,$('#myDiv').myFunction()
是实时 jQuery 对象的成员函数。您可以在 myFunction()
实现中引用 this
,它将是一个 jQuery 对象,在本例中包含与 id="对应的 DOM 对象我的分区”
。如果您从方法中返回 jQuery 对象,您还可以使用链接。
如果您的代码在 jQuery 对象上运行,那么它应该是一个实时 jQuery 对象上的方法,它应该访问 this
以获取 jQuery 对象实例数据,您应该将其声明为 $.fn.myFunction = function() {};并将其命名为
$('#myDiv').myFunction()`。
如果您的代码不对 jQuery 对象进行操作,而只是您调用的实用函数,并且它并不总是对 jQuery 对象进行操作,那么,您应该将其声明为 $.myFunction = function() {};
并且您应该将其称为 $.myFunction()
。
关于javascript - $.fn.myFunction() 的正确用法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12472270/
我已经看到,主要是在事件处理程序中,称为 Pascal 风格的函数,即没有括号。 myFunction 和 myFunction() 之间有区别吗?如果有,它是什么? 最佳答案 当你想调用函数时,总是
我正在阅读 Kyle Simpson 的“You-Dont-Know-JS”系列,并发现了以下代码块: function NothingSpecial() { console.log( "Do
在another.pyx中,我有 cdef double myadd(double a, double b): cdef double c = a + b return c 在anot
我正在查看 Vows documentation并且在几个地方它使用语法 var myVar = new(MyFunction); 例如 var promise = new(events.EventE
我知道这个问题看起来很简单,但我想知道在 Lua 中创建函数的两种方式之间的区别: local myFunction = function() --code code code end 或者这
我今天想知道 javascript 函数。我知道 jQuery 是一个 javascript 库,可以在带有点的元素上调用函数。 javascript 有时会做同样的事情(例如:.toFixed())
我正在使用“setTimeout”函数。此代码按预期运行: function myFunction() { console.log('test'); setTimeout(myFunc
Onfocusin Enter Your Name: function myFunction(x) { x.sty
在 javascript 中,这两者之间有什么不同吗: // call MyFunction normal way MyFunction(); // call MyFunction with setT
According to the documentation ,从客户端 HTML 脚本调用 Google Apps 脚本函数应该像 google.script.run.myFunction() 一样
我正在研究为 jQuery 编写插件,并且试图了解 $.f 和 $.fn.f 之间的区别 我见过插件作者同时使用两者,或者有时分配 $.f = $.fn.f 有人可以向我解释一下,推理,好处等吗? 最
我有一个div其中有onclick="myFunction()"对于“显示/隐藏”id="myTable" . 在file.js中我使用这样的格式: function example () {
我知道在 C++ 中,我们使用 :: 来限定变量或函数的命名空间,例如 myNamespace::a。但我注意到一些用法,例如 ::myFunction()。这是否意味着该函数属于全局命名空间? 最佳
在我的scriptfile.js我布局了一个简单的文本调整大小功能。该函数本身可以按预期工作。但是,当我尝试添加 $(window).resize(fitheadliner()); 时到我的脚本文件来
我想制作一个小型简单的 Web 服务器,其中包含可以查询的 API。所以我有一个包含以下内容的 server.js 文件: var demandeController = require('./api
我编写了一个函数来根据从列表中获取的两个值执行计算,然后附加结果。我想知道如何调整这个函数来对列表列表中的所有列表执行计算,到目前为止我遇到了惨痛的失败。 这是迄今为止我所知道的有效方法: impor
当使用 javascript 时,如果你在函数的括号中放一些东西,比如: Click Here! 在 JS 中: function myFunction(i); 它是在运行时立即定义 var i =
错误: Uncaught ReferenceError :未定义 myFunction 这是我的 .js 文件,它无法正常工作或调用我的 HTML function = myFunction() {
如何读取流.pipe(myfunction())? 我试了,但是报错。 gulp.src('./userdata.json')和.pipe()如何读取流?我不知道它是怎么做的。 gulpfile.js
(function($) { $.fn.myFunction = function(config) { var defaults = { setting
我是一名优秀的程序员,十分优秀!