为什么在单击子文本框/在Safari中焦点时,父元素单击事件会自动触发?

时间:2016-02-23 12:32:58

标签: javascript jquery html safari

我有以下HTML结构

[Checkbox] [Text] [Input element (Show if check-box is checked)]
<span class='spGrpContainer'>
  <label id='stepGH_Group1' class='lblStep GHSteps lblGroupheader' stepid='1' stepname='Group1' childcontainer='ulGH_grp1Steps'>
    <label><input type='checkbox' onchange="Javascript:HideUnHideSubItems();" /><span class='sptext spGHStepName'>Check Me</span></label>
    <label class='lblRanking' style='display: none;'><input id='rnkbox_Scr' class='txtImportance' type='number' min='0' max='100' step='1' value='' /></label>
  </label>
</span>

点击输入元素后,复选框将自动隐藏在Safari browser中。在Chrome,IE,Firefox等所有其他主流浏览器中,它运行良好。 Check Fiddle

我还尝试event.stopPropagation()来解决事件冒泡问题,但它没有用。 Check Fiddle

有什么方法可以解决这个问题吗?

1 个答案:

答案 0 :(得分:2)

点击是一个冒泡的事件。 您可能需要查看MDN关于事件冒泡的JavaScript文档。 http://javascript.info/tutorial/bubbling-and-capturing

event.stopPropagation()应该可以防止它发生。 Stop propagation documentation