gpt4 book ai didi

javascript - 取消两者 - 子级内部的父级和子级函数

转载 作者:行者123 更新时间:2023-12-01 01:27:15 24 4
gpt4 key购买 nike

这是问题的简化版本。

单击按钮我需要调用函数abc并停止执行两个函数abc并单击如果x == 5;

当前情况 - abc 已取消,但 click 继续执行。

function abc(){
if(x == 5){return;}
console.log('abc');
}

var x = 5;

$('button').on('click', function(){
abc();
console.log('clicked');
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<button>CLICK</button>

最佳答案

如果我理解正确,您只需要从 abc 返回结果并对其进行测试:

function abc(){
if(x == 5){
return false;
}
console.log('abc');
return true;
}

var x = 5;

$('button').on('click', function(){
if (abc()){
console.log('clicked');
}
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<button>CLICK</button>

顺便说一句,你应该avoid defining global variables (x) like this 。相反,使用闭包来定义作用域变量。更像是:

var closure = function(){
function abc(){
if(x == 5){
return false;
}
console.log('abc');
return true;
}

var x = 5;

return {abc:abc};
}();

$('button').on('click', function(){
if (closure.abc()){
console.log('clicked');
}
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<button>CLICK</button>

这称为 Revealing module pattern

关于javascript - 取消两者 - 子级内部的父级和子级函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53667654/

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