AJAX重新加载时未删除JQuery TR
synchChecks()函数无法删除表行,但对TR的JQuery选择器引用似乎是正确的。这是什么原因造成的?我将在AJAX重新加载上应用逻辑,正如预期的那样,选中的TR将被检查,但单击失败,不会抛出错误AJAX重新加载时未删除JQuery TR,jquery,Jquery,synchChecks()函数无法删除表行,但对TR的JQuery选择器引用似乎是正确的。这是什么原因造成的?我将在AJAX重新加载上应用逻辑,正如预期的那样,选中的TR将被检查,但单击失败,不会抛出错误 $(function () { $(".pagination li").css("cursor","pointer") $('.pagination').on('click', 'li', function () { $('.p
$(function () {
$(".pagination li").css("cursor","pointer")
$('.pagination').on('click', 'li', function () {
$('.pagination li').removeClass("active");
$(this).addClass("active");
});
$('#myPager').on('click', 'a', function () {
$.ajax({
url: this.href,
type: 'GET',
cache: false,
success: function (result) {
$('#divVendors').html(result);
applyVendorLogic();
synchChecks();
}
});
return false;
});
});
//////////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////////////////
function applyVendorLogic() {
$("#tblVendorSelect").on('click', '.chkVendor', function () {
if ($(this).prop("checked") == true) {
var $trid = "xtr" + $(this).parent().parent().prop("id");
var $tr = $(this).parent().parent();
var $ts = $tr.clone();
$ts.attr("id", $trid);
$ts.on('click', '.chkVendor', function () {
$("#vendorSelection #" + $ts.attr("id")).remove();
})
$tr.on('click', '.chkVendor', function () {
if ($(this).prop("checked") == false) {
$("#vendorSelection #" + $ts.attr("id")).remove();
}
})
$("#vendorSelection").append($ts);
}
});
}
//////////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////////////////
function synchChecks() {
$("#vendorSelection .chkVendor").each(function () {
if ($(this).prop("checked") == true) {
$("#tblVendorSelect #" + $(this).attr("id")).prop("checked", true);
$("#tblVendorSelect").on('click',"#" + $(this).attr("id"),function () {
if ($(this).prop("checked") == false) {
$("#vendorSelection #x" + $(this).parent().parent().attr("id")).remove();
}
})
}
});
}
//////////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////////////////
现在我成功地在页面之间导航并保持同步。如果选中一个框,则另一个框也会选中。如果未选中该选项,则删除该行,并且选择表中的复选框也未选中 你不能直接删除$ts而不是使用它的ID吗?我很抱歉。我可能还不够清楚。synchChecks()函数是不起作用的函数,特别是代码部分:$(“#tblVendorSelect”).on('click',“#”+$(this).attr(“id”),函数(){if($(this).prop(“checked”)==false){$(“#vendorSelection#x”+$(this.parent().parent().attr(“id”).remove()}})是否将$tr克隆到$ts中,然后删除原始克隆并将新克隆追加回原处-净效果没有明显变化?所需的行为是,当复选框未选中时,另一个表vendorSelection中的相应记录将被删除。因为页面是通过AJAX加载的,必须重新应用逻辑。其他每一段代码都是功能齐全的。代码中唯一让我困惑的部分是: