Ветка компонента Octobercms

Может ли кто-нибудь показать мне, как установить уникальный идентификатор для компонентов? Я только знаю, что должен поместить этот код в мой default.htm

{% set uid = '{{__SELF__.id}}' %}

как использовать его в javascript?

а это для чего?

var avatar_{{uid}} = {{ avatar }};

например это мой js

$(function(){
    $("#tab-close").click(function() {        
         $("#tab").addClass("hidden");
    });
});

Как мне установить для него уникальный идентификатор, чтобы при дублировании компонента оба могли нормально работать без ошибок?


person BEX    schedule 05.07.2016    source источник


Ответы (1)


Возможно, было бы лучше инкапсулировать ваш элемент управления с помощью одного идентификатора, например

<div id="mycontrol{{ __SELF__.id }}">
   ...
</div>

Затем в JavaScript вы можете настроить таргетинг на элементы внутри:

function initTabs(controlEl) {
    var $control = $(controlEl)
    $(".tab-close", $control).click(function() {        
         $(".tab", $control).addClass("hidden");
    });
}

Приведенный выше код нацелен на имена классов, которые можно найти только внутри контейнера $control. Вы бы вызвали эту функцию из разметки так

<script>
    $(function(){
        initTabs('#mycontrol{{ __SELF__.id }}');
    });
</script>
person Samuel Georges    schedule 12.07.2016