У блока есть множество одноименных элементов, клик по которым необходимо обрабатывать.
Подписываюсь на клик так:
this._domEvents("item").on("click", this._onClick);
В методе _onClick
необходимо получить бэм-элемент, по которому был клик. Как правильно это сделать средствами БЭМ и возможно ли вообще такое?
Пока сделал костыльное решение, которое конечно работает, но не кажется корректным:
_onClick: function(e) {
var elems = this._elems("item");
var elem;
for (var i = 0; i < elems.size(); i++) {
if(elems.get(i).domElem[0] === e.currentTarget) {
elem = elems.get(i);
break;
}
}
}
все гораздо проще :)
Спасибо! В данном контексте все действительно проще =) А что все-же с возможностью по DOM-узлу? В старых версиях можно было получить блок через $(xxx).bem('block'). Как я понял по синтаксису в соответствующий вызов в последних версиях передается класс блок. Но можно ли аналогично получать элемент все же?
Элемент тоже можно получать через класс элемента, но для этого его необходимо сначала задекларировать.
Понял. Значит при необходимости придется декларировать просто пустые элементы, если понадобится их использовать вне контекста БЭМ. Спасибо.