簡體   English   中英

按鈕單擊事件在 Bootstrap 3 模態中多次觸發

[英]button click event fires multiple times inside of a Bootstrap 3 Modal

我有一個錯誤(或功能),即 Bootstrap 3 模式內的任何按鈕都會觸發點擊事件多次。 除了去“老派”並直接從 HTML 按鈕調用腳本(始終有效)之外,是否有解決方法?

                    <div class="modal-footer">
                        <span id="spanSendReport">
                            <button type="button" id="btnSendReport" class="btn btn-success" data-dismiss="modal">Send Report</button></span>
                        <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
                    </div>

和 jquery

$("#btnSendReport").click(function (e) {
... my code
});

使用 Bootstrap v3.4.1 和 jQuery v3.3.1

以前從未遇到過這種情況(除了發回的東西,但沒有發生任何形式的回發 - 在瀏覽器和調試器中檢查)。 DOM 中只有一個帶有 Id 的按鈕(我檢查的第一件事),但它每次都會觸發點擊事件 4 次? 有任何想法嗎

注意:我忘了提,模態是從另一個模態打開的。 也許這與它有關。

點擊事件 function 中的完整代碼(以防萬一它與它有關):

$("#btnSendReport").click(function (e) {
        var parElem = $(this).parent().parent().parent();
        var listID = parElem.find("#hidLID").val();
        var problemTypes = $.map(parElem.find('option:selected'), function (e) { return e.value; }).join(',');
        var problemTypeOther = parElem.find("#txtProblemTypeOther").val();

        var obj = {};
        obj.lid = listID;
        obj.ProblemTypes = problemTypes;
        obj.ProblemTypeOther = problemTypeOther;

        try {
            $.ajax({
                type: "POST",
                url: "../../api/reportdiscrepancy/",
                data: obj,
                dataType: "json",
                success: function (data) {
                    var result = data;
                },
                error: function (err) {
                    console.log(err);
                }
            });
        } catch (err) {
            console.log(err);
        }
    });

找到了我之前遇到的許多問題的問題和答案,罪魁禍首是function pageLoad()這是舊的 ASP.Net 網絡表單用於客戶端操作的方法。 我刪除了“#btnSendReport”點擊到 pageLoad() function 外部的點擊,它現在只觸發一次。

看起來任何 MS-AJAX 都會在 UpdatePanel 中累積所有事件綁定(實際上並未觸發它們),然后對單擊事件(或其他)的最終調用將觸發 x 次。

當我進行 3 次更改以進入模式時,我被提示了,我做的最后一件事是單擊按鈕(所以它觸發了 4 次)。 我相信它可能與 ChildrenAsTriggers=True 的 UpdatePanel 的默認設置有關(不幸的是,如果設置為 false,我必須將其保留為其他功能中斷)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM