我们可以在不调用的情况下删除click事件吗

时间:2017-07-29 21:25:17

标签: javascript jquery pagination dojo

我在覆盖网格给出的分页代码时遇到问题。我需要做的就是破解我的网格给出的分页。

我们有很多记录。所以,我们正在做的是将记录加载到阈值限制。

因此,我们假设阈值限制为50,页面大小为10,因此将有5页。因此,当用户进入第5页时,网格提供的下一个按钮将被禁用。 所以,我们需要做什么,我们需要启用它,如果用户点击它,我需要进行ajax调用并在网格中加载另外50条记录(阈值限制)。 之后我需要禁用此事件,以便下次用户点击它时不应该执行make ajax调用,它应该像以前一样工作(从第1页到第2页等等)

我能提到的所有上述事情。但是这里出现了问题,当用户进入第5页并返回到其他页面时,请说3而不点击下一步按钮。现在,转到第3页 当用户点击下一页按钮时,它正在进行ajax调用,因为当用户进入第5页并向其提供点击事件时,我启用了按钮。 所以,即使我提供的条件只在网格当前页面为5时运行,那么它也在运行,因为在转到第5页后,我将使按钮启用,绑定和事件。因此,当我提供事件时,它将在没有指定条件的情况下运行。 如何使click事件作为默认值工作,并且仅当用户为5时才会进行ajax调用。

这是我的代码 -

    ///grid Current page will tell us which page we are in the grid. 
if(gridCurrentPage==5){
              query(".dojoxGridWardButton").forEach(function(element) {
                    query(".dojoxGridnextPageBtnDisable").replaceClass("dojoxGridnextPageBtn", "dojoxGridnextPageBtnDisable");
                    query(".dojoxGridlastPageBtnDisable").replaceClass("dojoxGridlastPageBtn", "dojoxGridlastPageBtnDisable");
                }); 
              callNextButton(gridCurrentPage)
              }

这就是功能。

function callNextButton(gridCurrentPage) {


    var target = dojo.query(".dojoxGridnextPageBtn");


    var signal = on(target, "click", function(event){  ///Adding click event


    if (gridCurrentPage ==5 ) {

    var deferred = new dojo.Deferred();
    setTimeout(function() {
        deferred.callback({
            called: true
        })
    }, 2000);
    if (checking some conditions) {

            ////////doing Ajax call
            deferred.then(function() {
                //calling a callback
            })
        },
    error: function(e) {}
    };
    })


    signal.remove();                        //Removing click event
}

注意:我的网格是增强网格,是dojo工具包的一部分。但可能是一个设计问题,欢迎任何意见/建议。

我真的需要一个建议。请任何人都可以找到问题所在的地方,这将是有用的。

0 个答案:

没有答案