javascript - 即使 .click() 不会触发动画,调用 .mouseenter() 仍然有效

标签 javascript jquery html

在 HTML 中,我有一个 id 为“submit1”的按钮

<div id="first"> 
    <form>
        <input type="radio" name="school" value="pitt">Pitt<br>
        <input type="radio" name="school" value="memphis">Memphis<br>
        <button id="submit1">Submit</button>
    </form>
</div> 

现在在 Jquery 中,我尝试使用 .click() 触发 div“first”淡出,如下所示:

$(document).ready(function() {
    $('#submit1').click(function(){
         $('#first').fadeOut('slow');
     });
 }); 

奇怪的是,当我点击提交时没有任何反应。我想也许它没有调用我的 .js 文件,但是可惜,当我将其更改为 .mouseenter( ) 时,它完美地触发了 div 的淡出。

$(document).ready(function() {
$('#submit1').mouseenter(function(){
    $('#first').fadeOut('slow');
});
}); 

我看到一个旧的 Stack Overflow 帖子,其中他们使用警报而不是动画,所以我在调试过程中也尝试过,它仍然有效。从字面上看,这只是似乎破坏了东西的动画(尝试了 .slideToggle、.slideDown 等只是为了检查)。谢谢!

最佳答案

由于提交按钮位于表单元素内部,因此默认的单击行为是将表单提交到服务器。在内部,JS 被调用,但这也会导致整个页面刷新,因此您看不到动画发生。为了防止这种情况,请更改代码以防止默认提交行为:

$('#submit1').click(function (e) {
    e.preventDefault();
    $('#first').fadeOut('slow');
});

关于javascript - 即使 .click() 不会触发动画,调用 .mouseenter() 仍然有效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22292097/

相关文章:

php - 嵌套 else if 语法

JavaScript - 对象创建与更新

javascript - selenium 在浏览器中右键单击获取页面源不同

javascript - 如何在没有 form.submit 的情况下在输入键表单提交时执行 js 代码?

android - cordova - 响应式网页设计

javascript - 如何阻止 Protractor 在失败时运行进一步的测试用例?

javascript - VS Code 问题 : When I save, 行和空格自动添加并销毁代码

javascript - 将 hashmap 从 javascript 传递到 servlet

html - :active problems with my navigation menu

php - 无法在 codeigniter 中加载 Css