【问题标题】:Strange behavior of button: calling "onclick" parent's element instead of itself (HTML Button)按钮的奇怪行为:调用“onclick”父元素而不是自身(HTML 按钮)
【发布时间】:2010-07-02 09:03:47
【问题描述】:

我有以下 Web 应用程序结构,我正在对其进行自动化测试:

<em unselectable="on" class="x-btn-split">
        <button type="button" class="x-btn-text " id="ext-gen523" title="Add Options">Add</button>
</em>

两个对象都有事件监听器,在一些链接的 js 文件中添加了 viw JavaScript(我不知道具体是什么文件)。

用鼠标单击“添加”按钮后,调用AJAX函数调用并将行添加到某个表中,单击em元素后,打开应用程序菜单。

我尝试通过 VBScript 重现单击按钮 ADD(正如我所说,我正在自动测试此应用程序),而不是在表中添加行,打开应用程序菜单。但我确切地知道,我正在单击按钮添加,而不是 em 元素。 伪代码,这样做:

set obj = domHelper.GetElementByClassName(container,"x-btn-text","button")
obj.click

如果您知道这种行为的原因,请告诉我,因为我真的不知道该怎么想。 (我尝试了许多不同的方法来解决这个问题,但没有任何帮助)

谢谢!

【问题讨论】:

    标签: javascript html dom vbscript dom-events


    【解决方案1】:

    click,像大多数事件一样,通过所有祖先元素“冒泡”。当您单击&lt;button&gt; 时,是的,您同时也单击了包含它的&lt;em&gt;

    如果&lt;em&gt; 的事件处理程序需要知道点击是直接在&lt;em&gt; 的内容区域中而不是它的任何子项,它应该查看event.target(IE 中的srcElement event.stopPropagation()(IEcancelBubble= true),则事件将停止并且不再传递。

    【讨论】:

    • 非常感谢!我不知道这一点,你阐明了这一点
    猜你喜欢
    • 1970-01-01
    • 2020-11-21
    • 2013-11-01
    • 1970-01-01
    • 2012-06-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-28
    相关资源
    最近更新 更多