【问题标题】:How to terminate a function in jquery?如何终止jquery中的函数?
【发布时间】:2021-06-13 12:29:28
【问题描述】:

伙计们,我的 jQuery 代码有问题我写了一些代码,当单击按钮时会发出 ajax 请求,但单击按钮时出现问题我单击“否”,它仍然会监听“是”按钮,因此当我在其他按钮上单击“是”时,它会提交两次 ajax 请求,因此我想在用户单击“否”按钮时终止该功能。

这是我的代码 ->

function confirmDelete(id, dataType) {
    $(".overlay").fadeIn();
    $(".confirmDelete").fadeIn();
    $(".confirmDelete").css("display", "flex");
    $(".overlay").click(function () {
        $(".overlay").fadeOut();
        $(".confirmDelete").fadeOut();
    });

    $("#confirmDeleteYes").click(function (e) {
        $(".overlay").fadeOut();
        $(".confirmDelete").fadeOut();
        $.ajax({
            url: "/delete/" + dataType + "/" + id,
            type: "DELETE",
            data: {
                _token: $('meta[name="csrf"]').attr("content"),
            },
            success: function (data) {
                activateNotificationSuccess(data.message);
                $(".closeSnackBar").click(function () {
                    $(this).parent().remove();
                });
                $("#" + dataType + data.id).remove();
            },
            error: function (error) {
                console.log(error);
                activateNotificationFail("Something went very wrong !!");
            },
        });
    });
    $("#confirmDeleteNo").click(function () {
        $(".overlay").fadeOut();
        $(".confirmDelete").fadeOut();
        return false;
    });
}

谁有解决办法?

【问题讨论】:

  • 为什么你的事件处理器在函数里面?另外,显示您的 html 代码
  • 好吧,我把它们放在函数里面,因为当按钮被点击时,我只是运行这个函数,它会为一些元素设置动画,然后才添加一个事件监听器,基本上我希望事件监听器在按钮点击时被激活。跨度>
  • 同时显示相关的 html 代码。另外,将事件处理程序移到函数之外,因为这会导致代码出现问题(提交两次)

标签: javascript jquery laravel function exit


【解决方案1】:

我找到了解决方案。实际上问题是我正在嵌套点击事件,所以我只是将它从第一个主要点击事件中取出,它工作正常,我也将所有代码都放在了函数之外。这是我的最终代码->

let targetId;
$(".deleteButton").click(function () {
    targetId = $(this).attr("target-id");
    $(".overlay").fadeIn();
    $(".confirmDelete").fadeIn();
    $(".confirmDelete").css("display", "flex");
});

$(".overlay").click(function () {
    $(".overlay").fadeOut();
    $(".confirmDelete").fadeOut();
    return false;
});

$("#confirmDeleteYes").click(function () {
    $(".overlay").fadeOut();
    $(".confirmDelete").fadeOut();
    $.ajax({
        url: "/delete/" + "category/" + targetId,
        type: "DELETE",
        data: {
            _token: $('meta[name="csrf"]').attr("content"),
        },
        success: function (data) {
            console.log(data);
            activateNotificationSuccess(data.message);
            $(".closeSnackBar").click(function () {
                $(this).parent().remove();
            });
            $("#" + "category" + data.id).remove();
        },
        error: function (error) {
            activateNotificationFail("Something went very wrong !!");
        },
    });

    return true;
});

$("#confirmDeleteNo").click(function () {
    $(".overlay").fadeOut();
    $(".confirmDelete").fadeOut();
    return false;
});

【讨论】:

    猜你喜欢
    • 2018-05-23
    • 2012-03-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多