jquery - 第二次单击时运行函数

标签 jquery twitter-bootstrap

我正在使用 Bootstrap ,并且我的表单上有内联按钮。第一次单击将使文本字段能够编辑。第二次单击将通过 ajax 保存更改。

html

<fieldset class="form-horizontal input-append">                
    <legend>Evelyn Jones <span class=" badge badge-important">Account Locked</span></legend>                    
    <div class="alert alert-success" style="display: block;">Success Confirmation.</div>
    <div class="control-group">
        <label class="control-label" for="inputEmail">Email Address</label>
        <div class="controls">
            <input name="ctl00$ctl00$PortalContent$PortalContent$txtEmailAddress" type="text" value="test" id="txtEmailAddress" class="aspNetDisabled span3" disabled="disabled">
            <a id="lnkEditEmailAddress" class="btn" data-attr="edit"><i class="icon-ok icon-edit"></i></a>
        </div>
    </div>
    <div class="control-group">
        <label class="control-label" for="txtUserName">Username</label>
        <div class="controls">
            <input name="ctl00$ctl00$PortalContent$PortalContent$txtUserName" type="text" value="test" id="txtUserName" disabled="disabled" class="aspNetDisabled span3">
            <a id="lnkEditUsername" class="btn" data-attr="edit" href="javascript:__doPostBack('ctl00$ctl00$PortalContent$PortalContent$lnkEditUsername','')"><i class="icon-edit"></i></a>
            <a id="lnkEmailUsername" class="btn" data-attr="email" href="javascript:__doPostBack('ctl00$ctl00$PortalContent$PortalContent$lnkEmailUsername','')"><i class="icon-envelope"></i></a>
        </div>
    </div>
    <div class="control-group">
        <label class="control-label" for="inputEmail"></label>
         <div class="controls">
                <div class="btn-group">
                    <button class="btn">Unlock Account</button>
                    <button class="btn">Reset Password</button>
                </div>
            </div>
        </div>
     </div>
</fieldset>

jquery

$('.alert').hide();

$('.controls a[data-attr="edit"]').click(function (e) {
    e.preventDefault();        $(this).toggleClass("btn-primary");
    $(this).find('i').toggleClass("icon-white").toggleClass("icon-edit").addClass('icon-ok');
    $(this).siblings('input[type=text]').attr('disabled', function(idx, oldAttr) {
        return !oldAttr;
    });
});

function success() {
    $('.alert').fadeIn();
}

这是一个jsfiddle

目前输入字段可以按照我的意愿切换。如何仅在第二次单击按钮时调用成功函数?

最佳答案

像这样吗?我正在检查您要添加到按钮的类:

if($(this).hasClass("btn-primary")) {
    success();
} else {
    hideSuccess();
}

检查this fiddle

关于jquery - 第二次单击时运行函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17602881/

相关文章:

jquery - 使用jquery确定点击下的所有元素

javascript - 尝试显示数据时出现 mustache 循环错误

javascript - Ajax 不与 owl-carousel 一起使用

jquery - 无法从ajax数据读取html

css - 将标题菜单/导航栏的文本变成小视口(viewport)的图标(rails 4/bootstrap3)

jquery - 多个 Bootstrap 导航栏的动画汉堡图标

javascript - jquery datepicker 不处理创建的元素

html - 无法截断宽度为 100% 的文本

javascript - MVC Bootstrap 通过 jquery 设置数据切换 ="modal"

angularjs - Angular js 输入类型文件 - 清除以前选择的文件