我找不到任何关于此的参考,我看到了许多不同的方法。 有人告诉我,如果你在项目中使用jquery,你应该使用“特殊”语法来定义你的函数。
他告诉我的是:
$.functionName = function (var1, var2){
//your code
};
并像这样使用它:
$.functionName("Test", "Test");
然后我在寻找使用jQuery时定义函数的指南或最佳实践。我发现了这个:jquery4u.com
我认为上面的例子可能是一个带有“自定义”命名空间的函数?我不确定。
无论如何,我的问题是:在使用jQuery时是否有指导/最佳实践来定义函数? (以及(dis)优势是什么)
非常感谢!
答案 0 :(得分:4)
在项目中使用jQuery并不意味着你应该改变你在项目中使用的Javascript的所有内容。 jQuery是一个库,它不是一个框架。
常规函数应以普通方式定义:
function functionName(var1, var2){
//your code
};
您可能会考虑将函数放在对象中以使全局范围尽可能保持干净,但是使用$.functionName=...
将每个函数放在jQuery对象中并不比将它们放在全局范围内好。
答案 1 :(得分:1)
对于define函数,使用jQuery不是必需的。只需用旧方式定义一个函数:
function myCoolFunc() {
// your code here
}
现在,jQuery只是一个Object(名为$
)......所以,如果你有这个:
var myObj = {}
myObj.myCoolFunc = function() {
//your code here
}
myObj.myCoolFunc();
或如果你有这个:
// include jQuery <script ...
$.myCoolFunc = function() {
// your code here
}
$.myCoolFunc();
是相同的......唯一的区别是,在第一种情况下,您将myCoolFunc
作为myObj
对象的属性,在第二种情况下,myCoolFunc
是jQuery对象的属性($
或jQuery
)。
什么是$.fn
?
$.fn
是jquery对象的原型。
要有这个:
$.fn.myCoolFunc = function() {
// your code here
}
与之前的案例不同。在这种情况下,您为jquery实例声明了一个公共方法。 要打电话,你必须这样做:
$('div').myCoolFunc();
// and not $.myCoolFunc();
在这种情况下,为DOM中的每个div调用该函数。在函数内部,您拥有作为DOM元素的范围(this
)。
最后,也许在某些情况下在jQuery对象(LIKE命名空间)中插入一个函数是有意义的。
如果你想要一个函数来操作DOM中的某个元素,你应该使用$.fn.myFunc
(作为最佳实践)。
在其他情况下,将函数放在全局范围内(或用于封装它的其他对象)更快更逻辑
答案 2 :(得分:0)
别担心,仍然专注....
你写一个函数的方法是真的......
因为$
或jQuery
是在页面加载时声明的变量....
我认为他讲的是特殊语法...
特殊语法是:
(function($) {
$.functionName = function (var1, var2){
//your code
};
})(jQuery);
上面的代码确保此函数是否为jquery插件
$.functionName = function (var1, var2){
//your code
};
上面的代码是定义没有选择器和
的函数$.fn.functionName = function (var1, var2){
//your code
};
包含选择器
希望有所帮助