2012-09-16 47 views
-1

我想通过“passedThisValue”我的“start_battle”功能,并在我的“复赛”中使用“start_battle”功能。但模态只是挂起为什么会发生这种情况?有什么可能是错的?请帮忙! :) 谢谢。我怎么能通过这个特定的变量我正在使用jquery-ajax

CODE:

function start_battle(){ 
    $.ajax({ 
     data: { 
      receivePassedValue: passedThisValue 
     }, 
     success: function(data){ 

     } 
    }); 
} 
$("#start_battle").click(function() { 
    $.ajax({ 
     success: function(data){ 
      var toAppend = ''; 
      if(typeof data === "object"){ 
       var passedThisValue = ''; 
       for(var i=0;i<data.length;i++){ 
        passedThisValue = data[i]['thisValue']; 
       } 

       start_battle(); // can I still get the passedThisValue? 

      } 
     } 
    }); 
    $("#battle").dialog({ 
     modal:true, 
     buttons: { 
      "Rematch": function(){ 
       start_battle(); // can I still get the passedThisValue? 
      } 
     } 
    }); 
    $("#battle").show(500); 
}); 

回答

1

你的函数声明似乎有点过。我认为你应该从function中删除$。只要做到这一点

function start_battle() { 

此外,当你调用一个函数,你不要说它之前function。如果你想传递一个值给函数,你必须把它放在括号里面,无论是在定义函数时还是在调用它时。像这样

function start_battle(someValue) { 
    // do some stuff with someValue 
} 

// inside your .click, call start_battle like this 
start_battle(passedThisValue); 

很基本的东西。但是,其中一个问题可能会导致挂起,这可能是一个JavaScript错误。

+0

对不起,我只是错误类型调用函数^^,start_battle(passedThisValue)?我使用的是萤火虫,它继续到start_battle() –

2

当你调用一个函数时,你不使用function start_battle();,你只需要使用start_battle();

将值传递给函数时,需要使用以下语法:start_battle(param1, param2);

当你想从一个函数得到一个值,你需要在函数返回它,就像这样:

function start_battle(param1) { 
    // Do something 
    return param1; 
} 

当你想从一个函数存储返回值,你这样做:var returned = start_battle(param1);

事实上,你不知道为什么模式只是挂起,这意味着你没有检查浏览器的错误控制台,它可以保存一些关于错误的非常重要的信息。尝试检查并发布在这里,所以我们可以看到目前的问题

+0

对不起,我只是错误类型调用函数^^,start_battle(passedThisValue)?我使用了萤火虫,然后ddnt进入start_battle() –

相关问题