javascript - Bootstrap 模式按钮单击事件未在第一次触发

标签 javascript jquery html twitter-bootstrap

我是 twitter bootstrap 新手。我正在使用 bootstrap 3 这是我的 html 代码

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Bootstrap Samples</title>
<script src="scripts/jquery1.10.2.min.js"></script>
<script src="bootstrap-3.1.1-dist/js/bootstrap.min.js"></script>
<link rel="stylesheet" type="text/css" href="bootstrap-3.1.1-dist/css/bootstrap.min.css" />
<link rel="stylesheet" type="text/css" href="bootstrap-3.1.1-dist/css/bootstrap-theme.min.css" />
<style>
.banner {color:#FF0000;}
</style>
<script>
$(document).ready(function(){
$("#MyModal5").on('hidden.bs.modal',function(){
            $("#btnYes").on('click',function(e){
                var $myMod = $(this);
                var id = $myMod.data('cust-id');
                if(id=='y'){
                    alert("You clicked yes button");
                }
            });
        });
    });
</script>
</head>
<body>
<!-- -------------------------------------------------------------------- -->
<div class="modal fade" id="MyModal5">
    <div class="modal-dialog modal-sm">
        <div class="modal-content">
            <div class="modal-title">
                <label style="color:#FF6600;">Confirmation</label>
            </div>
            <div class="modal-header">
                <button class="close" data-dismiss="modal">&times;</button>
            </div>
            <div class="modal-body">
                <label>This may cause to make an additional hit to server. Are you sure you want to continue ?</label>
            </div>
            <div class="modal-footer">
                <button class="btn btn-success btn-sm" id="btnYes" data-cust-id="y" data-dismiss="modal">Yes</button>
                <button class="btn btn-danger btn-sm" id="btnNo" data-cust-id="n" data-dismiss="modal">No</button>
            </div>
        </div>
    </div>
</div>
<!-- -------------------------------------------------------------------- -->
<div class="container">
    <div class="row">
        <div class="col-sm-12">
            <label>If you want to visit google</label><a href="#" data-toggle="modal" data-target="#MyModal5">Click here</a>
        </div>
    </div>
</div>
</body>
</html>

想法是我有一个链接,当我单击该链接时,我需要填充模型。它正在工作,现在如果我单击该模式上的"is"按钮,我需要一个警报,但问题是当我第一次单击"is"按钮时,警报没有显示,但是如果我第二次再次单击该按钮,它就会显示,另一个问题是,如果我单击第三次警报,则会显示两次,我不知道确切的原因,我怀疑这是因为jquery的on事件。 谁能帮我解决这个问题

最佳答案

我认为该问题可能源于您的点击事件绑定(bind)的嵌套。尝试删除外部绑定(bind)并以这种方式注册点击事件:

$(document).ready(function() {
    $("#btnYes").on("click",function(e) {
            var $myMod = $(this).closest(".modal"); // Select on closest parent modal
            // Now run your required code
        });
    });
});

希望这有效并有帮助!祝你好运。

关于javascript - Bootstrap 模式按钮单击事件未在第一次触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22631182/

相关文章:

javascript - Ajax 脚本加载/仅显示一次

jquery - 打开页面时放大和缩小图像

javascript - 使用 jquery 在移动浏览器上点击重绘图表

html - 修复了顶部导航栏不起作用的问题

javascript - 在 JSON 文件中搜索。

javascript - 在 React 中调用函数

javascript - facebook 喜欢 popover 的例子

html - 在 Django 的 css 文件中加载静态文件

javascript - 读取从mysql接收到的JSON数据

javascript - 浏览器性能不佳,无法隐藏大型(>1000 行,20 列)表