Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/85.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
AJAX重新加载时未删除JQuery TR_Jquery - Fatal编程技术网

AJAX重新加载时未删除JQuery TR

AJAX重新加载时未删除JQuery TR,jquery,Jquery,synchChecks()函数无法删除表行,但对TR的JQuery选择器引用似乎是正确的。这是什么原因造成的?我将在AJAX重新加载上应用逻辑,正如预期的那样,选中的TR将被检查,但单击失败,不会抛出错误 $(function () { $(".pagination li").css("cursor","pointer") $('.pagination').on('click', 'li', function () { $('.p

synchChecks()函数无法删除表行,但对TR的JQuery选择器引用似乎是正确的。这是什么原因造成的?我将在AJAX重新加载上应用逻辑,正如预期的那样,选中的TR将被检查,但单击失败,不会抛出错误

    $(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加载的,必须重新应用逻辑。其他每一段代码都是功能齐全的。代码中唯一让我困惑的部分是: