Привязка событий для каждого экземпляра - PullRequest
1 голос
/ 05 января 2012

У меня есть представление, которое создает подпредставление для каждого элемента в списке.В общем, давайте назовем их ListView и ListItemView.Я добавил событие в ListItemView следующим образом:

events: {
    "click .remove": "removeItem"
}

У меня есть HTML-шаблон, сгенерированный шаблоном для ListItemView, который примерно похож на следующий (поменялся местами lb / rb для {/}, так что вы можете увидеть «незаконно»html):

{div class="entry" data-id="this_list_item_id"}<br/>
    SOME STUFF HERE<br/>
    {div class="meta"}<br/>
        {a class="remove" href="javascript:;"}[x]{/a}<br/>
    {/div}<br/>
{/div}

Проблема заключается в том, что, когда щелчок по любому из [x], ВСЕ из ListItemViews запускают свою функцию removeItem.Если он у меня выйдет из идентификатора этой модели, тогда я уроню все элементы на странице.Если мне нужно выйти из родительского элемента родительского элемента, по которому щелкнули, чтобы получить идентификатор данных, я получу удаление для каждого экземпляра ListItemView.Есть ли способ создать событие для конкретного экземпляра, которое будет вызывать только один removeItem?

Если у меня ListView, удерживайте один экземпляр ListItemView и переназначайте модель ListItem и визуализируйте для каждого элемента в списке, который работает,Я заканчиваю только одним действием (removeItem), которое запускается.Проблема в том, что мне нужно найти родителя цели клика, чтобы найти атрибут data-id attr.Лично я думаю, что приведенный ниже фрагмент довольно уродлив и желает лучшего способа.

var that = $($(el.target).parent()).parent();

Буду очень признателен за любую помощь.

Ответы [ 2 ]

1 голос
/ 05 января 2012

Похоже, ваш хэш events находится в вашем ListView.

Если это так, вы можете переместить хеш events в ListItemView, и ваша функция removeItem может быть следующей

removeItem: function() {
  this.model.collection.remove(this.model);
}

Если это не так, можете ли вы предоставить свой код ListView и ListItemView, чтобы я мог посмотреть на него.

0 голосов
/ 06 января 2012

дикое предположение, но возможно;проверьте, что ваш предоставленный html действителен.Вполне возможно, что дом попадает в тиз из-за неправильно сформированного HTML

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...