2014-09-04 57 views
3

enter image description hereGridx/Dojo&jQuery:排序完成時是否有回調?

該表使用NodeWebkit中的GridX/dojo生成。 「[BV] [B] [V]」是由jQuery使用類選擇器處理的鏈接。但是,一旦我對網格進行排序,聽衆就會被解除綁定。我如何重新應用點擊功能?排序&渲染完成後是否有回調?

回答

3

沒有回調或事件,我知道什麼時候在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() { 
     ... 
    }); 
}); 
+0

This Works。但渲染兩次 - 對我來說不是問題。 – 2014-09-04 22:35:05

0

我創建了一個包裝的div並添加點擊監聽,以它爲 -

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

gridWrapper沒有改變。因此,聽衆保持活動狀態,儘管排序,.myLinkClass選擇器仍選擇<a href="#" class="myLinkClass">text</a>

0

像@ mccannf發起的我使用重新渲染事件。爲了防止雙重工作,我只使用一個計數變量,並且只在第二次執行工作。
注意:如果在初始時網格是空的,我將計數器設置爲1,因爲事件只被調用一次。

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

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