好吧,我对女巫说“ $ .Recup ...”这一行感到困惑,我不知道为什么它的名字与插件名称相同,它的用途是什么。
(function ($) {
$.fn.Recup = function () {
var parametros = {
};
var tsic = true;
$.Recup = function (opciones) {
var Metodos = {
};
return Metodos;
};
$.Recup.anterior = function () {
};
$.Recup.siguiente = function () {
}
})(jQuery);
我指的是这段代码,
$.Recup
到底能做什么?如果有人给我一个例子,那将是完美的 $.Recup = function (opciones) {
var Metodos = {
};
return Metodos;
};
最佳答案
在这种情况下,这似乎是一个有问题的插件设计-特别是因为在第一次调用$.Recup
之前未分配$.fn.Recup
。
但是,是否“适当和/或写得好”是另一个需要(预期)用法上下文的问题。为了它的价值,我会拒绝编写此代码,因为它散发出误解的设计和广泛的副作用。
无论如何,函数的分配方式决定了如何调用该方法。
// let $ be jQuery, then:
$.fn.foo = function () { console.log("foo") }
$.bar = function () { console.log("bar") }
$.foo() // TypeError: $.foo is not a function
$.bar() // -> "bar"
$("sel").foo() // -> "foo"
$("sel").bar() // TypeError: $(..).bar is not a function
也就是说,
$.fn.foo
就像.each()
一样-它基于当前选择的元素(由this
表示)执行某些操作。另一方面,$.bar
就像jQuery.each()
一样-它提供了一种遍历常规集合的方式,但与一组特定的(先前)选定元素无关。通常,插件只应在
$.fn
中添加一个条目,但是直接添加到$
可能对公开实用程序功能很有用-一定要小心。这里有两种方法可以解决数据泄漏不正确的问题:
$.fn.Recup = function () {
var parametros = ..
var tsic = true;
// Most trivial change; then use recup in this scope
// (or child scopes) only. There is no $.Recup - yay!
var recup = function (opciones) {
};
// ..
}
或者,只公开为本地方法:
$.fn.Recup = function () {
var parametros = ..
var tsic = true;
function anterior () {
}
function siguiente () {
}
// Just use simple functions in scope
}
关于javascript - Jquery.Recup是什么意思?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16875996/