在javascript中禁用加载功能直到选中按钮?

在javascript中禁用加载功能直到选中按钮?,javascript,jquery,html,Javascript,Jquery,Html,嗨,这是一个奇怪的问题,我会尽量正确地问。我有一个使用javascript的函数,名为LoadCanvas function loadCanvas(canvas) { relevant code here... } 我还有一个普通的按钮叫btn <button class="btn" type="button">Play!</button> 玩吧! 我想知道在选择播放按钮之前是否可以禁用该功能?该函数用于使用javascript的游戏。所以在加载时,直到我按下

嗨,这是一个奇怪的问题,我会尽量正确地问。我有一个使用javascript的函数,名为LoadCanvas

function loadCanvas(canvas) {

relevant code here...

} 
我还有一个普通的按钮叫btn

<button class="btn" type="button">Play!</button>
玩吧!
我想知道在选择播放按钮之前是否可以禁用该功能?该函数用于使用javascript的游戏。所以在加载时,直到我按下play键,它才会出现


有什么想法/帮助吗?

您需要做以下几点:

函数加载画布(游戏){
警报(“加载画布”);
}
玩吧
$(文档).ready(函数(){
var loadCanvas=函数(画布){
相关代码在这里。。。
} 
$(“#test”).on('click',loadCanvas());//使用jquery
document.getElementById(“test”).addEventListener(“单击”,loadCanvas());//使用javascript
玩
})

如您在评论
loadCanvas(“游戏”)中所述页面加载后,您将立即调用该函数。因此,您必须将其更改为:

<button class="btn play-button" type="button">Play!</button>

    <script type="text/javascript">
         $('.play-button').click(function(e){
        loadCanvas("game");}
        );
    </script>
玩吧!
$('.play按钮')。单击(函数(e){
loadCanvas(“游戏”);}
);

如果不使用jquery,则必须通过javascript处理单击事件。

如果由于其他方法触发函数而出现问题,则可以添加一个带有布尔值的标志,并在单击时将其打开

诸如此类:

按钮一点也没变

<button class="btn" type="button">Play!</button>
在单击函数中,在调用函数之前添加以下内容:

buttonClicked = true;
最后,您的js应该如下所示:

var buttonClicked = false;
function loadCanvas(canvas) {
    if(buttonClicked){
        relevant code here...
    }
} 

$(".btn").click(function(){
    buttonClicked  = true;
    var canvas = ...;
    loadCanvas(canvas );
});
编辑


如果你在类中有更多的按钮。btn你应该使用一个id并更改
的选择器。用id的选择器而不是类选择器来单击()

点击这个播放按钮调用loadCanvas?@AmitJS94是的,有点像这样,现在我让它在页面加载时直接加载。我想禁用,直到按钮被选中编辑的功能。在其他代码调用它之前,它不会做任何事情。所以,在希望它运行之前不要调用它。其他函数正在调用loadCanvas,这就是它执行的原因。您可以通过检查控制台中的堆栈来调试它,查看哪个函数正在调用loadCanvas。
buttonClicked = true;
var buttonClicked = false;
function loadCanvas(canvas) {
    if(buttonClicked){
        relevant code here...
    }
} 

$(".btn").click(function(){
    buttonClicked  = true;
    var canvas = ...;
    loadCanvas(canvas );
});