2010-12-23 24 views
0

Lassen Sie mich damit beginnen, dass dieses Problem für TabPanel in ExtJS-Bibliothek spezifisch ist. Ich kann erfolgreich Klicks auf andere ExtJS-Komponenten mit jQuery ("# ​​id") simulieren. Click() -Funktion.Simulieren Sie einen Klick auf die Registerkarte in ExtJs

Aber ich kann nicht Benutzer klicken auf einen Tab von TabPanel in ExtJS mit jQuery simulieren. Ich sehe, dass die DOM-Struktur hinter Registerkarten wie folgt aussieht:

<ul class="x-tab-strip x-tab-strip-top" id="ext-gen15"> 
    <li id="ext-comp-1009__ext-comp-1001" class="x-tab-strip-active"> 
    <a class="x-tab-strip-close" id="ext-gen18"></a> 
    <a href="#" class="x-tab-right" id="ext-gen19"> 
     <em class="x-tab-left"> 
     <span class="x-tab-strip-inner"> 
      <span class="x-tab-strip-text">Submarine</span> 
     </span> 
     </em> 
    </a> 
    </li> 
    <li id="ext-comp-1009__ext-comp-1003" class=""> 
    <a class="x-tab-strip-close" id="ext-gen20"></a> 
    <a href="#" class="x-tab-right" id="ext-gen21"> 
     <em class="x-tab-left"> 
     <span class="x-tab-strip-inner"> 
      <span class="x-tab-strip-text">SpaceShuttle</span> 
     </span> 
     </em> 
    </a> 
    </li> 
    <li class="x-tab-edge" id="ext-gen16"> 
    <span class="x-tab-strip-text">&#160;</span> 
    </li> 
    <div class="x-clear" id="ext-gen17"></div> 
</ul> 

ich verschiedene Methoden zur Auswahl der ersten Registerkarte mit jQuery versucht haben:

jQuery("#ext-comp-1009__ext-comp-1001").click(); 
jQuery("#ext-gen18").click(); 
jQuery("#ext-gen19").click(); 

aber nichts davon zu funktionieren scheint.

+0

Sie können Ext.getCmp verwenden und dann fireEvent() für die Komponente für das click-Ereignis aufrufen. – Lloyd

+0

Ja kann ich aber ich möchte das mit jQuery machen. Warum funktioniert jQuery nicht so, als würde man eine Registerkarte in TabPanel auswählen? – mgamer

+0

Warum machst du das mit jQuery? Scheint, seit du Ext hast, ist das völlig sinnlos? – Lloyd

Antwort

1

Wenn Sie take a look at the source (Suche nach onStripMouseDown insbesondere), werden Sie sehen, dass es eine Ext.EventObject erwartet. Es wird sofort fehlschlagen, weil e.button nicht 0 ist.

Vermutlich könnten Sie es mit Ihrem eigenen onStripMouseDown Patch.

Verwandte Themen