我必须点击两次才能使用 jQuery 激活功能

I have to click twice to activate function using jQuery

我在使用 jQuery 时遇到了很多麻烦。我必须在按钮上单击两次才能使页面消失。我尝试导入两个版本的 jQuery 并尝试在不同的元素上使用 fadeOut() 函数,但没有任何效果。它在我第二次单击时起作用,但从来没有在第一次单击时起作用。这是一个反复出现的问题,我需要知道如何解决它。这是我的代码:

HTML:

<body>
    <h1>CSS3 Buttons Showcase</h1>
    <a href="#" id="btn-1" onclick="fadeBg()">Click Me!</a>
</body>

JavaScript:

function fadeBg(){
            $("#btn-1").click(function(){
                $("body").fadeOut(1000);
            })
        }

您必须将函数更改为:

function fadeBg(){          
      $("body").fadeOut(1000);    
}

在您的 HTML 中,代码 onclick 被设置为 运行 您的函数 fadeBg。所以在你的函数中你必须把你想要的东西 运行;在这种情况下 $("body").fadeOut(1000);

问题是在第一次单击时调用 fadeBg() 函数之前,您不会绑定 jQuery 事件处理程序。试试这个:

<h1>CSS3 Buttons Showcase</h1>
<a href="#" id="btn-1">Click Me!</a>
$(function() {
    $("#btn-1").click(function(){
        $("body").fadeOut(1000);
    })
});

您正在做同一个动作两次,代码是:

HTML

<body>
    <h1>CSS3 Buttons Showcase</h1>
    <a href="#" id="btn-1">Click Me!</a>
</body>

JavaScript

$(document).ready(function() {

 $("#btn-1").click(function(){
                $("body").fadeOut(1000);
            })
}
function fadeBg(){
            $("#btn-1").click(function(){
                $("body").fadeOut(1000);
            })
        }

您直接在 html 中添加了 onclick 事件。此函数向同一个按钮添加第二个事件。

只需删除元素中的 onclick 事件并执行此操作:

$("#btn-1").click(function(){
                    $("body").fadeOut(1000);
                })

直接在 html 元素中添加 onclick 事件被认为是不好的做法。可以,但是不好看

有两种方法可以将点击绑定到元素:

1.旧的脏内联javascript(避免)

(HTML) : <button onclick="doSomething()">

2。更简洁的事件绑定

(HTML) : <button id="myButton">

(JS) : $('#myButton').click( doSometing )

您混合了两者,绑定了同一元素上的两次点击。

<button onclick="doSomething()">

function doSomething(){ // will be done on first click
  $('#myButton').click( doSometingElse ) // will be done on second click
}