Как привязать объекты DOM к объекту JS - PullRequest
0 голосов
/ 01 ноября 2019

Я работаю над простой игрой и пытаюсь связать мои объекты DOM с объектами JS, которые их порождают. Раньше это было очень легко еще во времена Flash - объект и его визуальное представление были одним и тем же! Какой лучший способ сделать это с JS / HTML? Вот урезанный пример того, что я пытаюсь сделать:

<body>

    <div id="pond"></div>

</body>

<script>

    function fish() {
        this.genotype = 'GATTACA';        
        this.phenotype = '<div class="fish" onclick=reveal()></div>';
    }

    shark = new fish();

    $(shark.phenotype).appendTo("#pond");

    function reveal() {
        alert(this.genotype);
    }

</script>

1 Ответ

1 голос
/ 01 ноября 2019

Используйте .data(), чтобы связать объект с элементом DOM.

function fish() {
  this.genotype = 'GATTACA';
  this.phenotype = '<div class="fish" onclick="reveal(this)">Click to see genotype</div>';
}

shark = new fish();
$(shark.phenotype).data('fish', shark).appendTo("#pond");
function reveal(element) {
  alert($(element).data('fish').genotype);
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<div id="pond"></div>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...