不问收获_但问耕耘 2016-09-14 01:12 采纳率: 66.7%
浏览 900
已采纳

为什么我动态加载的 onclick 去不掉

如题,我封装了一个分页js,传入参数有请求页数,动态加载onclick方法名称。
现在遇到了问题,比如,规定每页显示10条产品。
首先进入页面默认加载全部产品分类,“下一页“按钮绑定的是 全部产品查询(第2页)方法。此时我点击产品分类筛选出A类产品,只有9个产品。”下一页“按钮就不应该有onclick,但它就是去不掉,此时点击下一页就会跳转到"全部产品查询的第二页"结果。。。。。
我尝试过removeAttr()/赋空方法/甚至把标签删了再重新添加都不管用

  //region 下一页
        if (pageInfo.nextPage != null && pageInfo.nextPage != 0) {
            $("#nextPage").attr('class', 'NextA');
            $("#nextPage").attr('onclick', methodName + '(' + pageInfo.nextPage + ',' + typeID + ',' + typename + ',' + proid + ')');
        } else {
            //$("#nextPage").remove();
            //$("#linkPage").after('<a href="javascript:void(0)" class="PreSpan" id="nextPage">下一页</a>');
            $("#nextPage").attr('onclick','function(){}')
            $("#nextPage").attr('class', 'PreSpan');
        }
        //endregion

以下是全部代码


/*参数1: 后台返回的PageInfo数据,参数2: 调用该方法的方法名(方法名不加括号'()') 参数3:类型的ID 参数4:类型名称 参数5:产品ID   param3,4,5为可选择参数*/
function pageInfoPlugin(pageInfo, methodName, typeID, tn, proid) {
    //console.log('pageNum----' + pageInfo.pageNum)
    //console.log('pageSize----' + pageInfo.pageSize)
    //console.log('total----' + pageInfo.total)
    //console   .log('pages----' + pageInfo.pages)
    //console.log('firstPage----' + pageInfo.firstPage)
    //console.log('lastPage----' + pageInfo.lastPage)
    //console.log('prePage----' + pageInfo.prePage)
    //console.log('nextPage----' + pageInfo.nextPage)
    //console.log('methodName----' + methodName)
    var typename = "'" + tn + "'";
    if (pageInfo != null) {
        //region 上一页
        if (pageInfo.prePage != null && pageInfo.prePage != 0) {
            $("#prePage").attr('class', 'NextA');
            $("#prePage").attr('onclick', methodName + '(' + pageInfo.prePage + ',' + typeID + ',' + typename + ',' + proid + ')');
        } else {
            //$("#prePage").remove();
            //$("#linkPage").before('<a href="javascript:void(0)" class="PreSpan" id="prePage">上一页</a>');
            $("#prePage").attr('onclick','function(){}')
            $("#prePage").attr('class', 'PreSpan');
        }
        //endregion

        //region 下一页
        if (pageInfo.nextPage != null && pageInfo.nextPage != 0) {
            $("#nextPage").attr('class', 'NextA');
            $("#nextPage").attr('onclick', methodName + '(' + pageInfo.nextPage + ',' + typeID + ',' + typename + ',' + proid + ')');
        } else {
            //$("#nextPage").remove();
            //$("#linkPage").after('<a href="javascript:void(0)" class="PreSpan" id="nextPage">下一页</a>');
            $("#nextPage").attr('onclick','function(){}')
            $("#nextPage").attr('class', 'PreSpan');
        }
        //endregion

        //region 链接分页计算
        $("#linkPage").children().remove();
        if (pageInfo.pageNum - 5 < 1) {
            for (var i = 1; i <= pageInfo.pages && i <= 11; i++) {
                var linkPage = '<a href="javascript:void(0)" onclick="' + methodName + "(" + i + "," + typeID + "," + typename + "," + proid + ")" + '">' + i + '</a>';

                if (pageInfo.pageNum === i) {
                    linkPage = '<a href="javascript:void(0)" class="Ahover" onclick="' + methodName + "(" + i + "," + typeID + "," + typename + "," + proid + ")" + '">' + i + '</a>';
                }

                $("#linkPage").append(linkPage);
            }
        } else {
            if (pageInfo.pageNum + 5 > pageInfo.pages) {
                for (var i = pageInfo.pages - 11 + 1; i <= pageInfo.pages; i++) {
                    var linkPage = '<a href="javascript:void(0)" onclick="' + methodName + "(" + i + "," + typeID + "," + typename + "," + proid + ")" + '">' + i + '</a>';

                    if (pageInfo.pageNum === i) {
                        linkPage = '<a href="javascript:void(0)" class="Ahover" onclick="' + methodName + "(" + i + "," + typeID + "," + typename + "," + proid + ")" + '">' + i + '</a>';
                    }

                    $("#linkPage").append(linkPage);
                }
            } else {

                for (var i = pageInfo.pageNum - 5; i <= pageInfo.pageNum + 5; i++) {
                    var linkPage = '<a href="javascript:void(0)" onclick="' + methodName + "(" + i + "," + typeID + "," + typename + "," + proid + ")" + '">' + i + '</a>';

                    if (pageInfo.pageNum === i) {
                        linkPage = '<a href="javascript:void(0)" class="Ahover" onclick="' + methodName + "(" + i + "," + typeID + "," + typename + "," + proid + ")" + '">' + i + '</a>';
                    }

                    $("#linkPage").append(linkPage);
                }
            }
        }
        //endregion

        //region 分页信息
        $("#pageText").html("当前:第【" + pageInfo.pageNum + "】页 / 总共:【" + pageInfo.pages + "】页");
        //endregion
    }

}
 <div class="met_pager">
        <a href="javascript:void(0)" class="PreSpan" id="prePage">上一页</a>
        <b id="linkPage">
            <!--<a href="" onclick="showNewsAll(1)" class="Ahover">1</a>-->
            <!--<a href="" onclick="showNewsAll(2)">2</a>-->
        </b>
        <a href="javascript:void(0)" class="NextA" id="nextPage">下一页</a>
        <span class="PageText" id="pageText">1/5</span>
    </div>
  • 写回答

1条回答

  • 当作看不见 2016-09-14 01:21
    关注

    删除按钮没什么用,removeAttr()移除的是属性而不是事件
    unbind移除事件,
    或者禁用按钮

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 写一个方法checkPerson,入参实体类Person,出参布尔值
  • ¥15 我想咨询一下路面纹理三维点云数据处理的一些问题,上传的坐标文件里是怎么对无序点进行编号的,以及xy坐标在处理的时候是进行整体模型分片处理的吗
  • ¥15 CSAPPattacklab
  • ¥15 一直显示正在等待HID—ISP
  • ¥15 Python turtle 画图
  • ¥15 关于大棚监测的pcb板设计
  • ¥15 stm32开发clion时遇到的编译问题
  • ¥15 lna设计 源简并电感型共源放大器
  • ¥15 如何用Labview在myRIO上做LCD显示?(语言-开发语言)
  • ¥15 Vue3地图和异步函数使用