gpt4 book ai didi

javascript - 创建一个带有 2 个执行函数的按钮的模态,但我想将与返回 false 的函数绑定(bind)的按钮变灰

转载 作者:行者123 更新时间:2023-12-05 06:49:47 24 4
gpt4 key购买 nike

我正在创建一个游戏作为练习 JS 的一种方式,在游戏过程中会弹出一个模式,提供两个选项。根据游戏的状态,一个选项可能不可用。

我构建了一个“设置模态”函数,它接受模态的名称、两个选项以及绑定(bind)到按钮的两个函数。这些功能在别处定义,然后传递到按钮中。如果两个函数都有效(不返回 false),我可以单击模态中的任一按钮并执行函数。这目前工作正常。

但是,如果函数无法执行,它们将返回 false。不解释游戏的细节,把它想象成你不能超过 5 美元,所以如果你已经有 5 美元,函数 gainMoney(x) 将返回 false .

我希望 modalDef() 能够检查 function1function2 是否为 false,如果是,它会使按钮变灰并且不会设置事件监听器。如果 not false,则该按钮将变为有效且绑定(bind)了一个事件。整个设置工作正常,除非我有一个返回 false 的函数。

我一直在测试一个总是返回 false 的函数,结果如下:

在下面的版本中,我使用了一个简单的 not bool 值来检查函数。单击函数按钮后,操作执行(返回 false 值),然后按钮变为灰色(opacity 0.3),模态框不会消失。

function modalDef(action, option1, option2, function1, function2){

//set the text of the modal

$("#modal-action").text(action);
$("#modal-choice1").text(option1);
$("#modal-choice2").text(option2);

//set the functions of each button using the function inputs

$("#modal-choice1").one("click",function(){

//this is the line I need help with
if(!function1()){
$("#modal-choice1").css("opacity","0.3");
}
else{
function1();
modalToggle("hide");
}

});

$("#modal-choice2").one("click",function(){
if(!function2()){
$("#modal-choice2").css("opacity","0.3");
}
else{
function2();
modalToggle("hide");
}

});

}

在下面的版本中,我使用 .toString == false 来检查函数是否为 false(在互联网上某处看到的)。当我单击该按钮时,函数执行(返回 false 值)并且模态消失,基本上就好像整个函数都有效一样。

function modalDef(action, option1, option2, function1, function2){

//set the text of the modal

$("#modal-action").text(action);
$("#modal-choice1").text(option1);
$("#modal-choice2").text(option2);

//set the functions of each button using the function inputs

$("#modal-choice1").one("click",function(){

//this is the line I need help with
if(function1.toString == false){
$("#modal-choice1").css("opacity","0.3");
}
else{
function1();
modalToggle("hide");
}

});

$("#modal-choice2").one("click",function(){
if(function2() == false){
$("#modal-choice2").css("opacity","0.3");
}
else{
function2();
modalToggle("hide");
}

});

}

执行 if/else 的正确方法是什么,其中 if 检查函数是否返回 false

编辑:我将添加我如何应用它,再一次,除了检查 false 以降低不透明度外,它仍然有效:

function x(){previousBuiltFunction(input)}
function y(){previousBuiltFunction(input)}

modalDef("Choices","Choice 1", "Choice 2", x, y}

最佳答案

if(!function(parameter)) {
}

函数返回false,这样你就可以检查函数是否是单词“false”

关于javascript - 创建一个带有 2 个执行函数的按钮的模态,但我想将与返回 false 的函数绑定(bind)的按钮变灰,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66513417/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com