#jquery #html #tabs #onclick
#jquery #HTML #вкладки #onclick
Вопрос:
Это может быть вопрос новичка… но вот что дальше…
Я настроил несколько вкладок с помощью jQuery:
<div id='tabs'>
<ul id='ui-tab-ul'>
<li><a href='#tabPrimaryDetail'>Primary</a></li>
<li><a href='#tabSecondaryDetail' onclick='javascript: jQuery.fn.getSecondaryDetails();'>Secondary</a></li>
</ul>
<div id='tabPrimaryDetail'>
<p>No information available</p>
</div>
<div id='tabSecondaryDetail'>
<p>No information available</p>
</div>
</div>
Содержимое моей основной панели генерируется другим щелчком мыши, но поскольку это первая вкладка, мне не нужно было активировать саму вкладку… Но для моей дополнительной вкладки я хочу получать ее содержимое, когда пользователи нажимают на саму вкладку… Итак, я поместил туда событие onclick для выполнения AJAX-вызова, получения данных и заполнения содержимого…
Однако я не могу показать дополнительную вкладку… Я пытался использовать:
$('#tabs').tabs('show', 1);
или
$('#tabs').tabs('select', 1);
Но ни один из них не работает, если я использую select, это просто снова вызовет мой пользовательский AJAX-вызов… Есть ли способ сохранить onclick для действия с вкладкой?
Извините, я все еще новичок в jQuery, начинаю пользоваться им только около 2 недель.
Комментарии:
1. событие не имеет
javascript:
только атрибута href, который имеетjavascript:
Ответ №1:
Либо вы не показываете МНОГО кода, либо он полон ошибок. Во-первых, я нигде не вижу ‘#tabs’, определенного:
<div id="tabs">
например… Затем покажите определенный элемент, который вы можете использовать .показать функцию. Вот так:
$('#tabSecondaryDetail').show();
Кроме того, это:
onclick='javascript: jQuery.fn.getSecondaryDetails();'
должно быть:
onclick='getSecondaryDetails();'
и т.д…
Я не хочу сейчас приводить вам полный код, но я надеюсь, что это хорошее начало.
Комментарии:
1. stackoverflow был испорчен после того, как я его отредактировал… похоже, мне понадобится дополнительная блокировка строки, если я захочу опубликовать код.
2. Не могли бы вы, пожалуйста, объяснить, почему мне не нужно выполнять полный вызов функции, такой как jQuery.fn.<моя функция>()? Потому что я только что попробовал ваш метод, и он не может найти мою функцию…
3. Извините, я думал, вы используете обычный jQuery (в этом случае вам следует вызывать функции так, как я написал), но, очевидно, вы также используете плагин jQuery UI (как указал @GregM), поэтому вам, вероятно, следует оставить все по-старому. Просто попробуйте включить больше информации о вопросе в следующий раз.
Ответ №2:
Решением было бы не использовать onclick для a
тега
Возможно, вам следует использовать другое событие, больше похожее на show или select
$( "#tabs" ).tabs({
select: function(event, ui) { jQuery.fn.getSecondaryDetails();}
});
чтобы заполнить вкладку до того, как она будет показана
Или
$( "#tabs" ).tabs({
show: function(event, ui) { jQuery.fn.getSecondaryDetails();}
});
чтобы заполнить вкладку после ее отображения
Комментарии:
1. Это ничего не даст по многим причинам, одна из которых заключается в том, что #tabs не существует. Во-вторых, событие onclick нормально для тегов a, вам просто нужно вернуть false или поведение preventDefault().
2. Я почти уверен, что он в качестве идентификатора tabs, если он использует это: jqueryui.com/demos/tabs/#event-show и зачем использовать onclick, когда он может использовать событие defaul используемой библиотеки
3. Определенно! Тем не менее, он должен был показать div контейнера, верно?
4. да, конечно, мы делаем все, что в наших силах, когда у нас нет всего кода 🙂