-1

我想将“passedThisValue”传递给我的“start_battle”函数并在“Rematch”中使用“start_battle”函数。但是模态只是挂起为什么会发生这种情况?有什么问题?请帮忙!:) 谢谢。

代码:

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);
});
4

2 回答 2

2

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

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

当你想从一个函数中获取一个值时,你需要在函数中返回它,像这样:

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

当您想存储函数的返回值时,您可以执行以下操作:var returned = start_battle(param1);

事实上,您不知道模式为什么会挂起,这意味着您没有检查浏览器的错误控制台,它可以保存一些非常重要的错误信息。尝试检查并在此处发布,以便我们查看当前问题

于 2012-09-16T19:29:30.353 回答
1

你的函数声明似乎有点不对劲。我认为你应该离开$from 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 错误。

于 2012-09-16T19:28:07.390 回答