Javascript 使用一个按钮依次调用两个js函数

Javascript 使用一个按钮依次调用两个js函数,javascript,html,Javascript,Html,这是我的代码,不工作,请帮助我想用一个提交按钮调用两个js函数。我已经尝试了下面的代码。但它给出了错误 函数scrollWin(){ //第一次点击 如果(e.name!=“单击”){ e、 name=“单击”; 函数scrollWin(){ 滚动窗口(0,85); } } //当再次单击它时。。 否则,如果(e.name=='Click'){ e、 name=“松开”; 函数myFunction(){ document.getElementById(“demo”).innerHTML=“第二

这是我的代码,不工作,请帮助我想用一个提交按钮调用两个js函数。我已经尝试了下面的代码。但它给出了错误

函数scrollWin(){
//第一次点击
如果(e.name!=“单击”){
e、 name=“单击”;
函数scrollWin(){
滚动窗口(0,85);
}
}
//当再次单击它时。。
否则,如果(e.name=='Click'){
e、 name=“松开”;
函数myFunction(){
document.getElementById(“demo”).innerHTML=“第二次单击”;
}
}
}


您需要定义一个处理此操作的函数。最好将变量存储在可以保存单击状态的位置。以下是一个例子:

var clickCount=0;
功能scrollWin(按钮){
//第一次点击
如果(单击计数===0){
滚动窗口(0,85);
}
//第二次或多次单击
否则{
document.getElementById(“demo”).innerHTML=“第二次单击”;
button.style.display='none';
}
点击计数++;
}


您需要正确掌握基础知识。函数调用将有自己的作用域,一旦函数的作用域结束,变量将被销毁。我认为您希望捕获元素的第二次单击

不要尝试为同一对象声明全局变量,而是尝试在第一次单击时设置elements属性,您可以在第二次单击时访问该属性。单击读取该属性,然后进行操作

我建议您将点击事件称为

onclick="click123(this);"

然后用它来设置属性,使用
setAttribute

我想这就完成了您所描述的。如果单击按钮并读取按钮文本,您需要传递消息,但是
e.name
可能无法工作。您需要使用
innerHTML
textContent
。然后,您可以执行操作或调用希望执行的功能,具体取决于第二次单击后更改的按钮文本

函数scrollWin(e){ //第一次点击 如果(例如textContent!=“单击”){ e、 textContent=“单击”; 滚动窗口(0,85); } 否则如果(e.textContent=='Click'){ e、 textContent=“松开”; document.getElementById(“demo”).innerHTML=“第二次单击”; }//结束其他 }//结束功能
点击

据我所知,如果您希望执行保持状态并根据该状态执行操作,您希望在同一按钮上执行两个操作,但处于两种不同的状态。比如:

    function scrollWin(e) {
    var btn = e.target;

    var state = btn.dataset.myattr;

    if( state == 'state1'){
        btn.dataset.myattr = 'state2';
        e.name = "Click";
        window.scrollBy(0, 85);
    }else if (state == 'state2'){
        btn.dataset.myattr = 'state1';
        e.name = "Unclick";
        document.getElementById("demo").innerHTML = "<h2> Second Click </h2>";
    }
}
函数scrollWin(e){ var btn=e.目标; var state=btn.dataset.myattr; 如果(状态=='state1'){ btn.dataset.myattr='state2'; e、 name=“单击”; 滚动窗口(0,85); }else if(state==“state2”){ btn.dataset.myattr='state1'; e、 name=“松开”; document.getElementById(“demo”).innerHTML=“第二次单击”; } }
如果您想将name属性更改为其他属性,您可以这样做,而不必为此更改JS代码。

错误是什么?从这段代码中看不出您想要完成什么。将两个不同的函数命名为同一事物只会引起混淆。如果要调用两个函数,则只需逐个调用每个函数<代码>函数一();函数二()问题出在哪里?是的,在else块中,添加代码以隐藏元素。使用样式属性,如:btn.style.display='none';请您将其标记为答案并放弃投票。谢谢如果您引用我的答案,请记住将“state1”作为按钮的默认状态。您可以使用html中的数据myattr='state1'将其指定给按钮标记;如果我的答案不正确,至少给我一票。Thanks@AmitTiwari我已经适应了。我现在将按钮作为参数传递,并在第二次单击时设置style属性。