JHtml Вкладки не имеют идентификаторов - как я могу их указать?

Используя приведенный ниже код, я могу успешно создать вкладки, которые мне нужны, однако вкладки не содержат никаких идентификаторов для конкретного стиля или работы jQuery.

Существует количество переменных , в зависимости от группы пользователей и т. д., и большинство из них обновляются с некоторым интервалом с новой информацией. Обновление содержимого каждой панели не является проблемой, так как они do имеют идентификаторы, но обращение к соответствующей вкладке, чтобы предупредить пользователя о новой информации, является проблемой.

Может ли массив $options содержать спецификации для генерируемых идентификаторов?

// Start Tabs
echo '<div class="tabbable tabs-left">';
echo JHtml::_('bootstrap.startTabSet', 'tab_group_ida', $options);
// Tab 1
echo JHtml::_('bootstrap.addTab', 'tab_group_ida', 'tabs_1a', 'Tab 1');
echo '<p>Pri putant iisque detracto ut.</p>';
echo JHtml::_('bootstrap.endTab');
// Tab 2
echo JHtml::_('bootstrap.addTab', 'tab_group_ida', 'tabs_2a', 'Tab 2');
echo '<p>Duo delectus vivendum id, sit.</p>';
echo JHtml::_('bootstrap.endTab');
// Tab 3
echo JHtml::_('bootstrap.addTab', 'tab_group_ida', 'tabs_3a', 'Tab 3');
echo '<p>Tamquam constituam an qui, ea.</p>';
echo JHtml::_('bootstrap.endTab');
// End Tabs
echo JHtml::_('bootstrap.endTabSet');
echo '</div>';

Вид Firebug вкладок: Firebug view

7 голосов | спросил GDP 10 WedEurope/Moscow2014-12-10T21:26:06+03:00Europe/Moscow12bEurope/MoscowWed, 10 Dec 2014 21:26:06 +0300 2014, 21:26:06

3 ответа


3

Просто используйте селектор атрибутов. Вы можете настроить таргетинг на href в css с помощью [href = "# tabs_1a"]. У меня нет опыта работы с jQuery, но пример в ответах на ВВП использует селектора атрибутов для добавления идентификаторов, поэтому я бы предположил, что jQuery поддерживает это.

Суть в том, что вам действительно не нужно ничего добавлять, просто используйте селектор атрибутов для нацеливания на уже существующее, в вашем случае href.

Иногда: nth-child - жизнеспособная альтернатива.

ответил Ville Niemi 11 ThuEurope/Moscow2014-12-11T10:41:26+03:00Europe/Moscow12bEurope/MoscowThu, 11 Dec 2014 10:41:26 +0300 2014, 10:41:26
2

Если вы посмотрите на исходный код страницы, вы увидите, что Joomla использует jQuery для добавления элементов LI и A во время выполнения. Вы можете использовать тот же метод для добавления идентификаторов, классов, CSS или любых других атрибутов, которые могут вам понадобиться.

Используйте этот код jQuery для добавления префикса к имени вкладки, а затем добавьте атрибут идентификатора к якорю.

Примечание. Зафиксируйте выполнение кода после . Joomla создает вкладки, иначе они еще не существуют для работы.

jQuery(document).ready(function($) {
    var idPrefix = 'myId-';
    $("#tab_group_idaTabs li").each(function(li) {
        var a = $(this).children().first("a");
        var tabname = a.attr('href').replace('#','');
        a.attr('id',idPrefix + tabname);
    });
});
ответил GDP 10 WedEurope/Moscow2014-12-10T21:28:00+03:00Europe/Moscow12bEurope/MoscowWed, 10 Dec 2014 21:28:00 +0300 2014, 21:28:00
1

Я пытался добавить значки ico-moon на вкладку, и вы могли бы обернуть a в тег:

    // Tab 2
echo JHtml::_('bootstrap.addTab', 'tab_group_ida', 'tabs_2a', '<i class="icon-info"><i>'.Tab 2');

, чтобы вы могли также обернуть его в промежутке:

<?php echo JHtml::_('bootstrap.addTab', 'ID-Tabs-Group', 'tab2_id', '<span class="icon-signup">'.JText::_('DESCRIPTION').'</span>'); ?> 
ответил iamrobert 15 PM000000110000005731 2015, 23:02:57

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132