使用一个按钮

时间:2017-06-03 19:28:40

标签: javascript html

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

function scrollWin() {

    // First time click
    if (e.name != 'Click') {
        e.name = "Click";

        function scrollWin() {
            window.scrollBy(0, 85);
        }
    }

    // When click it again..
    else if (e.name == 'Click') {
        e.name = "Unclick";

        function myFunction() {
            document.getElementById("demo").innerHTML = "<h2> Second Click </h2>";
        }
    }
}
<input type="button" onclick="scrollWin(); this.style.visibility= 'hidden'; 
myFunction()" value="Click Me" />

<p id="demo"></p>

4 个答案:

答案 0 :(得分:0)

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

&#13;
&#13;
var clickCount = 0;

function scrollWin(button) {
    // first click
    if (clickCount === 0) {
        window.scrollBy(0, 85);
    }
    // second or more click
    else {
        document.getElementById("demo").innerHTML = "<h2> Second Click </h2>";
        button.style.display = 'none';
    }
    clickCount++;
}
&#13;
<input type="button" onclick="scrollWin(this)" value="Click Me" />

<p id="demo"></p>
&#13;
&#13;
&#13;

答案 1 :(得分:0)

你需要掌握基本面。函数调用将具有自己的作用域,一旦函数的作用域结束,变量就会被销毁。我想你想捕获元素的第二次点击。

请勿尝试声明相同的全局变量,但尝试在第一次单击时设置elements属性,您可以在第二次单击时访问该属性。点击后阅读该属性,然后进行操作。

我建议你将点击事件称为

onclick="click123(this);"

并使用此选项使用setAttribute

设置属性

答案 2 :(得分:0)

我认为这完成了你描述的内容。您需要在点击按钮时传递并阅读按钮文本,但e.name可能无法正常工作,您需要使用innerHTMLtextContent。然后,您可以执行操作或调用您希望执行的功能,具体取决于第二次单击后更改的按钮文本。

         function scrollWin(e) {

            //First time click
            if(e.textContent != 'Click'){
                e.textContent = "Click";
                window.scrollBy(0, 85);
            }

            else if(e.textContent == 'Click'){
                e.textContent = "Unclick";
                document.getElementById("demo").innerHTML = "<h2> Second Click </h2>";
            }//end else
        }//end function
<button onclick="scrollWin(this)">Click</button>
<div id="demo"></div>

答案 3 :(得分:0)

据我所知,你想在同一个按钮上执行两个操作但是在两个不同的条件下,如果你想执行保持状态并按照那样执行动作。像:

    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>";
    }
}

如果您想将name属性更改为其他内容,则可以执行此操作,并且您不必为此更改JS代码。