У меня есть элемент DOM, похожий на всплывающее окно «Просмотреть друзей» на Facebook.У меня есть таблица со списком строк, в которую я могу добавить теги к этим строкам:
<tr id="124"></tr>
При щелчке по строке создается модальное всплывающее окно, которое позволяет пользователю выбирать теги, с которыми он хочет связатьс этой строкой, вроде как:
<div class="popup">
<div class="popup-body-row" id="3434">Add tag 3434</div>
<div class="popup-body-row" id="2112">Add tag 2112</div>
//etc.
</div>
У меня есть следующий javascript:
$('.popup-body-row').live('click', function(event) {
var popupRowId = event.currentTarget.id
// post for sending this to the server omitted
});
, который получает popupRowId, но не получает исходный элемент для связи сpopupRowId.Я мог бы создать всплывающее окно так, чтобы идентификатор tr ассоциировался с ним:
<div class="popup" id="124">
// everything else is same as before
</div>
, а затем добавить эту строку в мой JavaScript:
var trRowId = e.currentTarget.parentNode.id;
Это работает, но если я начну добавлятьэлементы моего всплывающего элемента div, так что родительский узел больше не является родительским, он ломается, и мне придется его переписать.
Любой совет будет принят, но способ, которым я это делаюимеет определенный «кодовый запах».Спасибо!
Редактировать: Короткая версия , у меня есть элемент строки, каждый из которых связан с уникальным объектом.Я поставил идентификатор объекта в качестве атрибута.Когда я щелкаю по этому элементу строки, создается (потенциально) сложный элемент DOM, предоставляющий пользователю выбор тегов, связанных с элементом строки.Если я использую «parentNode», чтобы найти строку, по которой щелкнули, то она сломается, если придет мой дизайнер и добавит элементы во всплывающее окно.Каково лучшее решение для этого?Связать идентификатор строки tr с классом «всплывающее», а затем искать класс во всем DOM при добавлении тега?Или поместить идентификатор tr во все элементы div во всплывающем окне, чтобы, даже если мой дизайнер добавил нового родителя, идентификатор распространялся на него?