将变量绑定到Jquery对象有哪些限制/问题。 我在文件A中有一个函数,我想在文件B中访问。所以为了做到这一点,我将它绑定到Jquery对象。我觉得可能有理由不这样做。但我想不出任何。任何人都可以帮助我
例如
// File A
$.sayHello = function sayHello(){
alert("Hello");
}
//File B
$.sayHello();
这有什么问题。
答案 0 :(得分:1)
你所做的是与现有函数冲突的问题,即使你没有绑定到jQuery并绑定到你的窗口也是有效的,所以最好创建命名空间并附加变量,函数到它:
Myspace = {}
Myspace.sayHello = function sayHello(){
alert("Hello");
}
Myspace.sayHello();
或者如果您仍想附加到jQuery,请使用jQuery:
$.Myspace = {}
$.Myspace.sayHello = function sayHello(){
alert("Hello");
}
$.Myspace.sayHello();
答案 1 :(得分:0)
您必须确保在FileB之前加载FileA。如果你无法确定,我建议使用document.ready来确保在加载所有文件之前不调用该方法。
// File A
$.sayHello = function sayHello(){
alert("Hello");
}
//File B
$(document).ready(function() {
$.sayHello();
});
答案 2 :(得分:0)
不要污染jQuery名称空间,而是声明自己的名称空间:
var myNamespace;
(function (myNamespace) {
var doSomething = function () { console.log('Did Something'); };
})(myNamespace || (myNamespace = {}));
答案 3 :(得分:0)
我建议使用带有命名空间的mohamed-ibrahim解决方案但是使用jquery:
档案A:
$.fn.extend({
sayHello: function() {
alert("Hello");
}
});
档案B:
$ fn.sayHello();
没有Jquery:
档案A:
var MYNS = {
sayHello: function(){
console.log("Hello");
}
}
档案B:
MYNS.sayHello();
确保在文件B
之前定义文件A.