2

我有一个奇怪的问题。我提供了一个链接,它发送一个 ajax 请求来删除用户。如果用户第一次单击链接并确认确认框,则触发 ajax 功能。但如果之后用户再次单击类 delUser 的链接,则不会发生任何事情。没有确认框什么都没有,似乎点击功能被忽略了。我发现如果我用确认框切割零件一切正常。

这个确认有什么问题?

jQuery(".delUser").click(function(){       
    // open confirm Window
    confirm = window.confirm("Nutzer wirklich löschen?");
    User = $(this).attr("data-link");

    if(confirm == true){

            jQuery.ajax({
            type: "POST",
            url: "/Admin/DelUser.php",
            data: { where: User },
            success: function(retData){
                    jQuery.noticeAdd({text: "" + retData + "",
                    stay: false, 
                    type: 'error'
                });                             
                }
            }); 
            $(this).closest('tr').remove(); 

            } else {
                   talk("Nutzer wurde nicht gelöscht");
            }         
    });

亲切的问候,

托尼

4

2 回答 2

4

因为你正在覆盖confirm.

这一行:

confirm = window.confirm("Nutzer wirklich löschen?");

等于

window.confirm = window.confirm("Nutzer wirklich löschen?");

使用全局变量的原因之一是一个非常糟糕的主意。当你声明一个变量时,请始终使用var,所以它不会是全局的:

var confirm = window.confirm("Nutzer wirklich löschen?");

这同样适用于User. 你应该像这样声明它:

var User = $(this).attr("data-link");
于 2013-03-11T09:35:39.433 回答
0

尝试这个:

jQuery(".delUser").click(function(){       
User = $(this).attr("data-link");

if(window.confirm("Nutzer wirklich löschen?")){

        jQuery.ajax({
        type: "POST",
        url: "/Admin/DelUser.php",
        data: { where: User },
        success: function(retData){
                jQuery.noticeAdd({text: "" + retData + "",
                stay: false, 
                type: 'error'
            });                             
            }
        }); 
        $(this).closest('tr').remove(); 

        } else {
               talk("Nutzer wurde nicht gelöscht");
        }         
});
于 2013-03-11T09:38:04.427 回答