Ошибка обхода DOM в Safari - Ember.js - PullRequest
0 голосов
/ 13 июня 2018

У меня есть шаблон как-то так,

<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 голосов
/ 14 июня 2018

Хотя я бы порекомендовал попытаться найти способ избежать использования события нажатия jQuery, это похоже на проблему, связанную с тем, как различные браузеры обрабатывают parent.Я бы предпочел использовать .closest('li').eq(0) для доступа к первому родительскому элементу, который соответствует элементу, который вы ищете.

...