Jquery 函数被调用了两次
Jquery functions are called twice
已编辑
我在 jqwidget 网格列中单击 link 打开模式,我正在使用单元格渲染器来完成此操作。但数据渲染了两次。下面是点击打开模式后的截图。
$(document).ready(function () {
var loadGrid = function (fromDate = null, toDate = null) {
$.ajax({
url: "/Home/SearchResults",
dataType: 'json',
beforeSend: function () {
$("jqxgrid").html('');
},
error: function (json, textStatus, errorThrown) {
alert(' Error :' + errorThrown);
},
data: {
fromdate: fromDate,
toDate: toDate
},
success: function (response) {
// initailize grid
var gridData = response;
window.searchData = response.SearchResults;
var gridSource =
{
localdata: gridData,
datatype: 'json'
};
var gridDataAdapter = new $.jqx.dataAdapter(gridSource);
$("#jqxgrid").jqxGrid(
{
width: 1500,
source: gridDataAdapter,
pageable: true,
autoheight: true,
pagesize: 20,
selectionmode: 'singlecell',
columns: [
{ text: 'Edit', datafield: 'Edit', width: 250, columntype: 'button', cellsrenderer: function () {
return `<a href='' data-toggle='modal' data-target='#JsonModal' id='elem' /> Get Json`},
buttonclick: function (row) {
editrow = row;
var offset = $("#jqxgrid").offset();
var dataRecord = $("#jqxgrid").jqxGrid('getrowdata', editrow);
selectedFirstName = dataRecord.FirstName;
}
}
]
});
}
});
}
$(document).on("hidden.bs.modal", "#JsonModal", function () {
$(this).find("#modal-content").html(""); // just clear the contents.
$(this).find("#modal-content").remove(); // remove from dom.
});
$('#JsonModal').on('shown.bs.modal', function () {
$('#JsonModal').find('.modal-body').append('<div id="modal-content">' + selectedFirstName + '</div> ');
});
});
更新:
正如几位评论者所指出的,我注意到我的 jquery 函数被调用了两次。
$(document).on('click', 'a[id^="elem"]', function () {
alert('hello');
});
一个警告框打开了两次。
我不清楚为什么。
使用解除绑定()。
$(document).unbind().on('click', 'a[id^="elem"]', function () {
alert('hello');
});
希望对您有所帮助。
检查您的网页,确保您没有在网页上包含 jQuery 两次。
这是一个非常常见的错误,可能会导致您在事件问题中描述的问题 called/rendered 两次。
已编辑
我在 jqwidget 网格列中单击 link 打开模式,我正在使用单元格渲染器来完成此操作。但数据渲染了两次。下面是点击打开模式后的截图。
$(document).ready(function () {
var loadGrid = function (fromDate = null, toDate = null) {
$.ajax({
url: "/Home/SearchResults",
dataType: 'json',
beforeSend: function () {
$("jqxgrid").html('');
},
error: function (json, textStatus, errorThrown) {
alert(' Error :' + errorThrown);
},
data: {
fromdate: fromDate,
toDate: toDate
},
success: function (response) {
// initailize grid
var gridData = response;
window.searchData = response.SearchResults;
var gridSource =
{
localdata: gridData,
datatype: 'json'
};
var gridDataAdapter = new $.jqx.dataAdapter(gridSource);
$("#jqxgrid").jqxGrid(
{
width: 1500,
source: gridDataAdapter,
pageable: true,
autoheight: true,
pagesize: 20,
selectionmode: 'singlecell',
columns: [
{ text: 'Edit', datafield: 'Edit', width: 250, columntype: 'button', cellsrenderer: function () {
return `<a href='' data-toggle='modal' data-target='#JsonModal' id='elem' /> Get Json`},
buttonclick: function (row) {
editrow = row;
var offset = $("#jqxgrid").offset();
var dataRecord = $("#jqxgrid").jqxGrid('getrowdata', editrow);
selectedFirstName = dataRecord.FirstName;
}
}
]
});
}
});
}
$(document).on("hidden.bs.modal", "#JsonModal", function () {
$(this).find("#modal-content").html(""); // just clear the contents.
$(this).find("#modal-content").remove(); // remove from dom.
});
$('#JsonModal').on('shown.bs.modal', function () {
$('#JsonModal').find('.modal-body').append('<div id="modal-content">' + selectedFirstName + '</div> ');
});
});
更新:
正如几位评论者所指出的,我注意到我的 jquery 函数被调用了两次。
$(document).on('click', 'a[id^="elem"]', function () {
alert('hello');
});
一个警告框打开了两次。 我不清楚为什么。
使用解除绑定()。
$(document).unbind().on('click', 'a[id^="elem"]', function () {
alert('hello');
});
希望对您有所帮助。
检查您的网页,确保您没有在网页上包含 jQuery 两次。
这是一个非常常见的错误,可能会导致您在事件问题中描述的问题 called/rendered 两次。