[英]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.