Вы можете использовать тот же атрибут , равный селектору , с селектором потомка .
this._toolbox._container.on('click', '[data-group="points"] [id="first point"]', function (ev) {
});
$(document).on('click', '[data-group = "zone"] [id ="first point"]', function(ev) {
console.log('clicked');
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div data-group="points">
<div>
<ul>
<li id="first point">1</li>
</ul>
</div>
</div>
<div data-group="zone">
<div>
<ul>
<li id="first point">2</li>
</ul>
</div>
</div>
Из Документы MDN :
Глобальный атрибут id определяет уникальный идентификатор (ID) , который должен быть уникальным во всем документе .Его целью является идентификация элемента при связывании (с использованием идентификатора фрагмента), сценариях или стилях (с помощью CSS).
значение идентификатора не должно содержать пробелов (пробелы, табуляции и т. Д.).Браузеры обрабатывают несоответствующие идентификаторы, которые содержат пробелы, как если бы пробел был частью идентификатора.В отличие от атрибута класса, который допускает значения, разделенные пробелами, элементы могут иметь только один идентификатор.
FYI: The
id
должно быть уникальным в контексте, поэтому всегда используйте
class
вместо
id
для группы элементов.
HTML:
<div data-group = "points">
<div>
<ul>
<li class="first_point"></li>
</ul>
</div>
</div>
<div data-group = "zone">
<div>
<ul>
<li class="first_point"></li>
</ul>
</div>
</div>
Сценарий:
this._toolbox._container.on('click', '[data-group="points"] .first_point', function (ev) {
});
$(document).on('click', '[data-group="points"] .first_point', function(ev) {
console.log('clicked');
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div data-group="points">
<div>
<ul>
<li class="first_point"></li>
</ul>
</div>
</div>
<div data-group="zone">
<div>
<ul>
<li class="first_point"></li>
</ul>
</div>
</div>