1

从 javascript 函数调用 jquery 函数时出现问题。我确定我以前做过......只是无法理解我遇到的问题。感谢您提供的任何帮助。

$(document).ready(function(){
    function funB() {
        alert("B is working");
    };
});

funA();
function funA() {
    alert("A is working");
    funB();
};

http://jsfiddle.net/dannyj6/8GXhh/4/

4

5 回答 5

5

您的 funB 是在提供给就绪处理程序的函数范围内定义的,它不在全局范围内。把它移到外面就行了。

$(document).ready(function(){
  funA();
});

function funB() {
  alert("B is working");
}

function funA() {
  alert("A is working");
  funB();
}
于 2013-09-04T14:11:38.480 回答
0

这个问题实际上与 jQuery 与 JavaScript 无关。jQueryJavaScript。

问题是“funB”是另一个函数中声明的,而您正试图从函数外部引用它。那是做不到的。

您可以在“就绪”处理程序之外声明“funB”,或者您可以将其他代码与它一起放入其中。

于 2013-09-04T14:11:28.543 回答
0

因为funB它是“私有的”,因为它没有像您所说的那样在全局范围内定义。如果你将代码移动到同一个作用域块内,它就会神奇地开始工作。

于 2013-09-04T14:11:39.650 回答
0

它与 jQuery 无关(它只是一个库,用 Javascript 编写;没有“jQuery 函数”。

您的funB()函数在另一个函数中声明;它只存在于那个范围内。funB()外面的世界没有可用的。

这会起作用:

function funA() {
    alert("A is working");
    funB();
};

function funB() {
    alert("B is working");
};

$(document).ready( funB );

funA();
于 2013-09-04T14:12:54.857 回答
0

您要么需要将它们放在同一个外壳中:

$(document).ready(function(){
    function funB() {
        alert("B is working");
    };

    function funA() {
        alert("A is working");
        funB();
    }; 
    funA();   
}); 

示例小提琴

或者,将funB其放在窗口上,以便从以下位置访问funA

$(document).ready(function(){
    window.funB = function() {
        alert("B is working");
    };
});

funA();
function funA() {
    alert("A is working");
    funB();
};

示例小提琴

于 2013-09-04T14:13:48.770 回答