2010-12-23 141 views
0

让我开始说这个问题是特定于ExtJS库中的TabPanel。 我可以使用jQuery(“#id”)。click()函数成功模拟对其他ExtJS组件的点击。模拟ExtJs中的tabpanel点击

但我不能模拟用户点击使用jQuery在ExtJS中TabPanel的给定选项卡。我看到,选项卡背后的DOM结构是这样的:

<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> 

我试着选择使用jQuery的第一个标签的各种方法:

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

但没有它似乎工作。

+0

您可以使用Ext.getCmp,然后在组件上为click事件调用fireEvent()。 – Lloyd 2010-12-23 11:33:18

回答

1

如果您take a look at the source(特别是搜索onStripMouseDown),您会看到它预计为Ext.EventObject。它会马上失败,因为e.button不是0.

想必您可以用自己的onStripMouseDown修补它。