在ExtJs中模拟tabpanel上的单击

时间:2010-12-23 11:09:55

标签: javascript jquery testing extjs

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

但我无法使用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();

但似乎没有任何效果。

1 个答案:

答案 0 :(得分:1)

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

据推测,您可以使用自己的onStripMouseDown修补它。