删除第一次单击时无法使用的确认对话框

时间:2015-04-08 09:44:36

标签: javascript jquery

在删除按钮上单击我想显示确认对话框并使用此简单plugin。按钮标记看起来像

<button type="button" class="btn contactDeleteRow" /> 

我的JS看起来像

$(document).on('click', '.contactDeleteRow', function() {
$('.contactDeleteRow').easyconfirm();
$("#alert").click(function() {
    // Actions to perform 
});
});

我第一次点击按钮时没有出现确认对话框,但是在所有点击后都可以正常工作。任何想法为什么它不会在第一次点击工作?以及如何解决它

2 个答案:

答案 0 :(得分:2)

您需要在点击前注册插件,只需一次
您在代码中执行的操作是在点击后注册

$('.contactDeleteRow').easyconfirm(); // register before click

$(document).on('click', '.contactDeleteRow', function() {
    // do something here   
});

// dont register inside a click
$("#alert").click(function() {
    // Actions to perform 
});

这是一个完整的Html示例(将jquery.easy-confirm-dialog.js放在与html文件相同的目录中):

<!DOCTYPE html>

<html lang="en" xmlns="http://www.w3.org/1999/xhtml">
<head>
    <script src="http://code.jquery.com/jquery-1.9.1.js"></script>
    <script src="http://code.jquery.com/ui/1.10.3/jquery-ui.js"></script>
    <link rel="stylesheet" href="http://code.jquery.com/ui/1.10.3/themes/blitzer/jquery-ui.css" type="text/css" />
    <script src="jquery.easy-confirm-dialog.js"></script>
    <script type="text/javascript">
        $(document).ready(function () {
            $('.contactDeleteRow').easyconfirm({ locale: { title: 'This is my title', button: ['No', 'Yes'] } });
            $(document).on('click', '.contactDeleteRow', function () {
                alert('you clicked me');
            });
        })
    </script>
    <meta charset="utf-8" />
    <title></title>
</head>
<body>
    <a href="#" class="contactDeleteRow">
        Click me
    </a>
</body>
</html>

答案 1 :(得分:0)

您在代码末尾缺少一些括号:

$(document).on('click', '.contactDeleteRow', function () {
$('.contactDeleteRow').easyconfirm();
$("#alert").click(function () {
 // Actions to perform 
}); // <-- Missing brackets here...