与Jquery对象绑定变量的问题

Problems with binding variable with Jquery object

本文关键字:问题 变量 绑定 Jquery 对象      更新时间:2023-09-26

将变量绑定到Jquery对象有哪些限制/问题?我在文件a中有一个函数,我想在文件b中访问它,为了做到这一点,我将它绑定到Jquery对象。我觉得可能有理由不这么做。但是我想不起来。有人能帮我吗?

e。g

    // File A
    $.sayHello = function sayHello(){
        alert("Hello");
    }
    //File B
    $.sayHello();

你所做的问题是与现有的函数冲突,这是有效的,即使你没有绑定到jQuery和绑定到你的窗口,所以最好创建命名空间和附加变量,函数:

Myspace = {}
Myspace.sayHello = function sayHello(){
    alert("Hello");
}
Myspace.sayHello();

或者如果你仍然想要附加到jQuery中,也可以使用jQuery:

$.Myspace = {}
$.Myspace.sayHello = function sayHello(){
    alert("Hello");
}
$.Myspace.sayHello();

您必须确保FileA将在FileB之前加载。如果您不能确保这一点,我建议您使用document。准备好确保该方法不会被调用,直到所有文件都被加载。

// File A
$.sayHello = function sayHello(){
    alert("Hello");
}
//File B
$(document).ready(function() {
    $.sayHello();
});

不要污染jQuery命名空间,而是声明自己的命名空间:

var myNamespace;
(function (myNamespace) {
    var doSomething = function () { console.log('Did Something'); };
})(myNamespace || (myNamespace = {}));

我建议使用mohamed-ibrahim解决方案与名称空间,但与jquery:

文件:

$.fn.extend({
  sayHello: function() {
    alert("Hello");
  }
});

文件B:

.fn.sayHello美元();

不使用Jquery:

File A:

var MYNS = {
  sayHello: function(){
      console.log("Hello");
  }

}

文件B:

MYNS.sayHello();

确保文件A在文件B之前定义