Safari中的DOM遍历错误 - Ember.js

时间:2018-06-13 12:08:33

标签: javascript jquery dom ember.js safari

我的模板是这样的,

<ul id="items">
    {{#each items as |item index|}}
       <li>
        <!-- <input type="checkbox" id={{concat "pf" index}} /> -->
        {{input type="checkbox" id=(concat "pf" index)}}
       </li>
    {{/each}}
</ul>

我的 js 就像这样,

import Ember from "ember";

export default Ember.Controller.extend({
  appName: "Ember Twiddle",
  items: [{}],
  init: function() {
    $(document).on("click.somename", function (e) {
      alert($(e.target).parent().length); //should get parent as "li" and length as 1
    });
  }
});

我的项目发生了什么,如果我点击ember输入帮助器,我无法使用parentElement获取jQuery。但是当我将输入帮助器更改为正常<input type="checkbox" />时,我能够获得parentElement。我不知道Safari / Ember是否正在使用任何虚拟DOM或其​​他东西来呈现自己的帮助者。 此问题仅在Safari 中发生。在Chrome中,它运行正常。

不幸的是,由于问题无法在其中复制,我无法制作小提琴/插件。对于那个很抱歉。在我的项目中,我使用ember@2.7.3

有关此问题的任何建议/帮助吗?

1 个答案:

答案 0 :(得分:0)

虽然我建议尝试找到一种方法来避免首先使用jQuery点击事件,但这听起来像是不同浏览器如何处理parent的问题。我更愿意使用.closest('li').eq(0)来访问与您要查找的元素匹配的第一个父级。