我正在使用不同的步骤创建一个小的javascript / jQuery应用程序。 为此,我使用具有不同功能的js文件。
在文件的顶部,我调用了我的第一个函数。 在我的第一个函数中,我在单击按钮时调用第二个函数。 在第二个功能中,我想回拨第一个功能,但是"在外面"第二个:我的意思是我不希望第一个函数在第二个函数内运行,因为循环效果...
myFirstFunction();
function myFirstFunction() {
// some code
$('myButton').click(function() {
mySecondFunction();
}
}
function mySecondFunction() {
// some code
$('myOtherButton').click(function() {
myFirstFunction();
}
}
我不知道这是否可行,可能是我更好地使用对象或者其他,但我对Javascript很新... 在此先感谢您的帮助。
答案 0 :(得分:2)
您可以在那里使用单个事件处理程序:
var handler = myFirstFunction;
$('myButton').click(function() { handler(); });
function myFirstFunction() { handler = mySecondFunction; }
function mySecondFunction() { handler = myFirstFunction; }
该处理程序将调用您的任何一个函数。
更新:或者如果这是两个不同的按钮,那么
$('myButton').click( mySecondFunction );
$('myOtherButton').click( myFirstFunction );
答案 1 :(得分:0)
你是对的,因为你提到它可能会变得混乱,所以最好避免在彼此之间嵌套功能。我敢肯定别人可以加入,但如果你想坚持使用vanilla JS,我会创建一个变量来修改状态,并有一个条件语句来确定要运行的函数。
var state = 1;
function handler(){
if(state == 1){
myFirstFunction();
state = 2;
}
else if(state == 2){
mySecondFunction();
state = 1;
}
}
然后让你的myButton执行handler()函数。