首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >为什么这个jquery函数没有被调用

为什么这个jquery函数没有被调用
EN

Stack Overflow用户
提问于 2013-09-11 15:12:00
回答 4查看 69关注 0票数 1

我编写了非常简单的代码,下面是html代码:

代码语言:javascript
运行
复制
<form name="signInForm">
    <section id="signInSection">
        <input class="large" type="text" placeholder="username" />
        <br>
        <input class="large" type="password" placeholder="password">
        <br>
        <button id="signinbtn" class="small">Sign In</button>
        <br>
        <label><input type="checkbox" />Remember me.</label>
        <a href="#">Reset Password</a>

        <img src="../images/cancel.jpg" alt="Cancel Sign In">
    </section>
</form>

下面是jQuery:

代码语言:javascript
运行
复制
$('#signinbtn').on('click', function () {
    $('#signInSection').fadeOut(200);       
    $('#signedInSection').fadeIn(200);
    $('.signUp').fadeOut(1);
    $('.signIn').closest('header').find('input').fadeIn(200);
    $('#memberToolBarSection').fadeIn(1500);
    $('#contents').fadeIn(1500);
}); 

无论我在上面提到的单击处理程序中写什么,它都不起作用。虽然我通过发出警报来测试处理程序正在被调用。

谁能告诉我为什么它没有调用所有的fadeIn和fadeOut函数调用?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2013-09-11 15:15:41

试试这个..。

代码语言:javascript
运行
复制
$('#signinbtn').on('click', function (e) {
    e.preventDefault();
    $('#signInSection').fadeOut(200);       
    $('#signedInSection').fadeIn(200);
    $('.signUp').fadeOut(1);
    $('.signIn').closest('header').find('input').fadeIn(200);
    $('#memberToolBarSection').fadeIn(1500);
    $('#contents').fadeIn(1500);
}); 

看起来表单正在提交,在本例中,表单只是重新加载页面。

e参数添加到事件处理程序并添加e.preventDefault()将停止表单提交。

下面是一个有用的例子

票数 6
EN

Stack Overflow用户

发布于 2013-09-11 15:20:11

不是因为表单被提交了所以你被重定向了吗?如果是这样,请将处理程序更改为:

代码语言:javascript
运行
复制
$('#signinbtn').on('click', function (e) {
    e.preventDefault();
    $('#signInSection').fadeOut(200);       
    $('#signedInSection').fadeIn(200);
    $('.signUp').fadeOut(1);
    $('.signIn').closest('header').find('input').fadeIn(200);
    $('#memberToolBarSection').fadeIn(1500);
    $('#contents').fadeIn(1500);
}); 

关键线是e.preventDefault();

票数 0
EN

Stack Overflow用户

发布于 2013-09-11 15:30:14

工作演示

尝尝这个

e.preventDefault();阻止它在动画之后提交表单,$("#signInForm").submit();将提交signInForm是表单id的表单

html

代码语言:javascript
运行
复制
<form name="signInForm" id="signInForm">
                <section id="signInSection">
                    <input class="large" type="text" placeholder="username"/><br>
                    <input class="large" type="password" placeholder="password"><br>    
                    <button id="signinbtn" class="small">Sign In</button><br>
                    <label><input type="checkbox"/>Remember me.</label>
                    <a href="#">Reset Password</a>
                    <img src="../images/cancel.jpg" alt="Cancel Sign In">   
                </section>
            </form>

代码

代码语言:javascript
运行
复制
$('#signinbtn').on('click', function (e) {
     e.preventDefault();
    $('#signInSection').fadeOut(200);       
    $('#signedInSection').fadeIn(200);
    $('.signUp').fadeOut(1);
    $('.signIn').closest('header').find('input').fadeIn(200);
    $('#memberToolBarSection').fadeIn(1500);
    $('#contents').fadeIn(1500);
    $("#signInForm").submit();
}); 
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18744970

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档