2013-04-12 3 views
1

J'ai mis en place un menu contextuel de clic droit sur ma grille KendoUI.Menu contextuel du clic droit Lenteur

Le problème est que c'est lent.

Lorsque vous cliquez avec le bouton droit, le script doit obtenir l'ID de la ligne sur laquelle vous avez cliqué. Je fais cela avec:

salesGrid.on('mouseup', '[role="row"]', function(e){ 
    button = e.which ; 
    if(button == 3) 
    { 
    $(this).bind("contextmenu",function(e){ 
     return false 
    }); 

    var id = null ; 
    id = $('td', this).find('.id-span').data('id') // ~500ms 

J'ai aussi essayé:

id = $(this).children('td').children('.id-span').data('id') ; 

Et:

id = $('td:first span', this).data('id') ; 

Tous qui prennent environ 500 ms pour exécuter, ce qui est trop long en termes de expérience utilisateur.

Voici la table, il parcourt:

<tr data-uid="16e14dc2-a2fa-4979-a1ff-cd5113223aa6" role="row"> 
    <td role="gridcell"><span class="id-span" data-id="1">A</span></td> 
    <td role="gridcell">3</td> 
    <td role="gridcell">Lenze</td> 
    <td role="gridcell"><span class="popoverintel" data-trigger="hover" data-placement="bottom" data-part-id="1">33.8202-E</span></td> 
    <td role="gridcell">Supply</td> 
    <td role="gridcell">New</td> 
    <td role="gridcell">3</td> 
    <td role="gridcell">€</td> 
    <td role="gridcell">575.00</td> 
    <td role="gridcell">1725.00</td> 
</tr> 

Y at-il un moyen de faire ce plus rapide?

+0

ce qui est 'this' dans ce contexte, est-il la table, une ligne, une cellule ou un contenu dans la cellule –

+0

Essayez quelque chose comme' $ (». Id-durée ', $ (this) .closest (' tr ')). data (' id ') ' –

+0

@Arun P Johny J'ai ajouté le contexte. – imperium2335

Répondre

0

Essayez de changer le sélecteur '[role="row"]' par 'tr[role="row"]'

Questions connexes