必须单击按钮两次才能执行功能 - jQuery

时间:2013-10-22 18:59:31

标签: javascript jquery html button user-interface

出于某种原因,我必须按两次按钮才能执行分配给它的功能,这可能与有两个点击事件有关吗?但是,如果我删除" $(buttonNumber).on(' click',function()"脚本会中断。 我打算将这个功能用于多个按钮,以及为什么它必须在一个功能中。

HTML:

<!DOCTYPE HTML>
<html lang="en">
    <head>
        <meta charset="UTF-8">

        <link rel="stylesheet" href="css/style.css" />
        <script type="text/javascript" src="test2.js"></script>

    </head>

 <body>

<button id="button1" onclick="nextSlide('#button1', '#1', '#2')">Hide it</button>
<p id="1">Hide this text</p>
<p id="2">Show this text</p>

    <script src="http://ajax.googleapis.com/ajax/libs/jquery/2.0.2/jquery.min.js"></script>
    <script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.10.3/jquery-ui.min.js"></script>
</body>
</html>

JS:

window.onload=function(){
    $('#2').fadeOut(1);

};

function nextSlide(buttonNumber, hideDiv, showDiv) {
    $(buttonNumber).on('click', function () {
            $(hideDiv).hide("slide", 2000, function(){
                $(showDiv).show("slide", 2000);
            });
    });
};

1 个答案:

答案 0 :(得分:1)

您在每次点击时都会绑定事件。您应该只在点击事件中执行代码。

function nextSlide(buttonNumber, hideDiv, showDiv) {
    //$(buttonNumber).on('click', function () {
            $(hideDiv).hide("slide", 2000, function(){
                $(showDiv).show("slide", 2000);
            });
    //});
};

评论的部分会绑定点击事件,但您已在html中完成此操作:

onclick="nextSlide('#button1', '#1', '#2')"