问题从javascript调用jquery函数

时间:2013-09-04 14:10:11

标签: javascript jquery

从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/

5 个答案:

答案 0 :(得分:5)

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

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

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

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

答案 1 :(得分:0)

问题与jQuery与JavaScript没有任何关系; jQuery JavaScript。

问题是“funB”在内部声明了另一个函数,并且你试图从 outside 函数引用它。这是不可能做到的。

你可以在“ready”处理程序之外声明“funB”,或者你可以将其他代码放在其中。

答案 2 :(得分:0)

因为funB是“私有的”,因为它没有在全局范围内定义,就像你调用它一样。如果你要在相同的范围块内移动代码,它将神奇地开始工作。

答案 3 :(得分:0)

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

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

这样可行:

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

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

$(document).ready( funB );

funA();

答案 4 :(得分:0)

您需要将它们放在同一个机箱中:

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

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

Example fiddle

或者,将funB放在窗口上,以便可以从funA访问:

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

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

Example fiddle