Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/369.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
Javascript Gridx/Dojo&;jQuery:排序完成时是否有回调?_Javascript_Jquery_Dojo_Node Webkit_Dojo.gridx - Fatal编程技术网

Javascript Gridx/Dojo&;jQuery:排序完成时是否有回调?

Javascript Gridx/Dojo&;jQuery:排序完成时是否有回调?,javascript,jquery,dojo,node-webkit,dojo.gridx,Javascript,Jquery,Dojo,Node Webkit,Dojo.gridx,此表是在NodeWebkit中使用GridX/dojo生成的。“[BV][B][V]”是jQuery使用类选择器处理的链接。但是,一旦我对网格进行排序,侦听器将取消绑定。如何重新应用单击功能?排序和渲染完成时是否有回调?我知道在gridx中排序完成时没有回调或事件 但是,在对整个栅格进行排序或过滤时,将重新渲染该栅格。因此,您可以使用以下内容: grid.connect(grid.body, 'onRender', function(){ $(document).on("click",


此表是在NodeWebkit中使用GridX/dojo生成的。“[BV][B][V]”是jQuery使用类选择器处理的链接。但是,一旦我对网格进行排序,侦听器将取消绑定。如何重新应用单击功能?排序和渲染完成时是否有回调?

我知道在gridx中排序完成时没有回调或事件

但是,在对整个栅格进行排序或过滤时,将重新渲染该栅格。因此,您可以使用以下内容:

grid.connect(grid.body, 'onRender', function(){
    $(document).on("click", "a.myBVlink", function() {
      ...
    });
    $(document).on("click", "a.myBlink", function() {
      ...
    });
    $(document).on("click", "a.myVlink", function() {
      ...
    });
});

我创建了一个包装器div,并将click listener添加到其中,作为-

$('#gridWrapper').on('click','.myLinkClass',function(){
    console.log('clicked');
    console.log(this);
});

gridWrapper
未更改。因此,侦听器保持活动状态,并且无论排序如何,
.myLinkClass
选择器都会选择

就像@mccannf initiated一样,我使用重新渲染事件。为了防止重复工作,我只使用一个计数变量,并且只做第二次工作。
注意:如果开始时网格为空,则我将计数器设置为1,因为该事件只调用一次

var countRender = 0;
if (grid.store.data.length == 0) countRender=1; 

grid.connect(grid.body, 'onRender', function(gridName){
    if (!countRender++) return;
    countRender=0;
    ...
});

这很有效。但是渲染两次-对我来说不是问题。