2012-09-16 78 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() –

相關問題