2010-11-12 8 views
4

J'ai une page ExtJS qui produit le DOM suivant.Comment puis-je sélectionner des éléments dans ExtJS?

Je souhaite sélectionner un élément spécifique pour pouvoir répondre à un clic.

Cependant, le code suivant n'a jamais sélectionné les éléments qui sont construits avec la bibliothèque extJS. JQuery ne peut pas sembler les sélectionner non plus.

ExtJS ne peut même pas trouver un élément défini dans l'élément <body> dans le fichier HTML lui-même. Cependant, JQuery peut en effet sélectionner un élément défini dans l'élément <body>.

Je lis this guide ce qui semble indiquer qu'il devrait y avoir aucun problème à utiliser simplement Ext.get() et Ext.select() pour obtenir des éléments, cependant, comme le montre le code suivant, les éléments ne sont jamais sélectionnés.

Comment sélectionner un élément dans ExtJS?

var members = Ext.select('x-panel'); 
for (var i = members.length - 1; i >= 0; i--){ 
    element = members[i]; 
    element.on('click', function() { alert('test');}) 
}; 

alt text alt text

Répondre

4

Essayez Ext.select('.x-panel') une période dans le sélecteur, qui est nécessaire pour sélectionner le nom de la classe.

1

Utilisation:

Ext.get(el); 

si vous avez besoin pour obtenir l'élément de poids mouche, utilisez:

Ext.fly(el); 

Voir la documentation de l'API de l'objet statique Ext pour plus de détails

2

bmoeskau est juste, vous pouvez utiliser Ext.select ('. x-panel') qui retourne une collection de divs avec la classe x-panel.

Notez que Ext.get() renvoie juste un seul élément, donc si vous voulez obtenir plusieurs correspondances, vous devez utiliser Ext.select() ou Ext.query().

Et en plus, Ext.select() retourne Ext.CompositeElement, bien que le document ne mentionne pas, mais il prend en charge toutes les méthodes de Ext.Element afin que votre exemple peut être tout simplement écrire:

Ext.select('.x-panel').on('click', function(){ alert('test') }); 

Le code ci-dessus ajoute un gestionnaire d'événements pour l'opération de clic à chaque x-panel.

Questions connexes