首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Jquery在函数外部调用变量

Jquery在函数外部调用变量
EN

Stack Overflow用户
提问于 2014-04-01 05:31:36
回答 2查看 745关注 0票数 0

我有一个定义变量的函数,如果我在函数中调用这个veriable,它就能正常工作。当我试图在函数外部使用alert时,它不起作用。我做错了什么和/或我需要做什么才能在函数外部调用/警告函数。谢谢。

代码语言:javascript
复制
$(function() {
    $("#MyForm").submit(function(){
        $(':input.File').each(function() {  
            $(this).upload(
                'filephp.php', 
                function(success){
                    var fmsg = success;
                    if(fmsg == "E") {var T = 'left';}

                    }, 
                $('#prog')
            )
            alert(T);

        }); 
        return false            
    })

})

正如您所看到的,im尝试设置一个变量"T“,然后在函数外部警告它。我需要在函数外部使用该变量来执行更多的表单处理。谢谢。

EN

回答 2

Stack Overflow用户

发布于 2014-04-01 05:34:46

变量T超出作用域。首先在upload调用外部定义它,然后在upload完成后在回调函数中调用alert。

编辑

代码语言:javascript
复制
   var T = '';
   ...
   $(this).upload(
      'filephp.php', 
      function(success){
         var fmsg = success;
         if(fmsg == "E") {
             T = 'left';
         }
      }, 
       $('#prog')
    );
    alert(T);
    ...

这个例子唯一的问题是警报值是'‘而不是'left’,因为回调函数是在上传完成时调用的,也就是在警报之后。所以你必须调用成功回调来获得正确的值。

票数 2
EN

Stack Overflow用户

发布于 2014-04-01 05:41:29

基本上,你必须在你的函数之前将"T“设置为一个变量,然后在你的函数中用类似T= "lol hai";的东西重新定义它。

*编辑-所以它有一些问题:http://jsfiddle.net/vAx6L/2/

就像您对变量"T“所做的那样,您也需要在函数外部将"fmsg”的变量设置为空白。

在Jquery中,您可以通过将函数设置为变量来创建函数,请参阅此链接:http://learn.jquery.com/javascript-101/functions/

有一些额外的不必要的字符检查控制台与此有关的错误,小提琴显示了您的示例的精简版本,因为显然没有您的上传库/插件。

代码语言:javascript
复制
var T;
var fmsg;
var newFunction = function(){
    fmsg = "E";
    if(fmsg == "E"){
        T = 'left';
    }
    alert(T);
}; // no need for a closing ")" here
newFunction(); // This actually calls the function, should be in your document ready/ document load
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22772583

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档