Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 15.12.2009, 12:04
Аспирант
Отправить личное сообщение для xela1980 Посмотреть профиль Найти все сообщения от xela1980
 
Регистрация: 20.11.2009
Сообщений: 33

Плагин JQuery tabs как подписаться нв событие перекл.вкладок
Ребят помогите пожалуйста. Вот есть такой такой горизонтальный аккордеон сдеалный с помощью виджета JQuery tabs

http://flowplayer.org/tools/demos/ta...orizontal.html

(бывает сервер не доступен то вот код)


<div id="accordion">

<p class="d">Пункт 1</p>

<div>

Содержание пункта 1

</div>


<p class="d">Пункт 2</p>
<
<div>
Содержание пункта 2

</div>

<p class="d">Пункт 3</p>

<div>
Содержание пункта 3

</div>





</div>

и затем JavaScript

$("#accordion").tabs("#accordion div", {
tabs:'.d',
effect:'horizontal'

}
);

Все работает и все хорошо но...
как на него подписать событие клика (по картинке если вы смотриет приемер на сайте разработика) или на элемент class="d". То есть чтобы при перелистывании
вызывалось событие.
Если делаю так то глухо

$("#accordion").tabs("#accordion div", {
tabs:'.d',
effect:'horizontal',

select: function(event, ui)
{
alert("Cобытие");
}




}
);
А кроме описания этого события у виджета tabs вроде для переключения нет ничего
select - событие tabsselect происходит в момент щелчка по ярлыку
вкладки (при наведении указателя мыши на вкладку,
если используется опция event: 'mouseover').
При щелчке на ярлыке активной вкладки ничего не происходит.
Спасибо.
Ответить с цитированием
  #2 (permalink)  
Старый 15.12.2009, 12:37
Аватар для e1f
e1f e1f вне форума
Профессор
Отправить личное сообщение для e1f Посмотреть профиль Найти все сообщения от e1f
 
Регистрация: 03.04.2009
Сообщений: 1,263

Насколько я понял, проблема лишь в том, что при клике на активную закладку не вызывается желаемый callback?

UPD Еще можно восппользоваться опцией collapsible:
$("#accordion").tabs("#accordion div", { 
    tabs:'.d', 
    effect:'horizontal', 
    select: function(event, ui) { 
        alert("Cобытие"); 
    },
    collapsible: true
});

Последний раз редактировалось e1f, 15.12.2009 в 12:50.
Ответить с цитированием
  #3 (permalink)  
Старый 15.12.2009, 13:13
Аспирант
Отправить личное сообщение для xela1980 Посмотреть профиль Найти все сообщения от xela1980
 
Регистрация: 20.11.2009
Сообщений: 33

Я сделал так как Вы посоветовали алерта нет. У меня проблема в том что этот виджет я использую как главное меню во вкладках скрыты подпункты, при переключении вкладок я хочу отлавливать событие и перезаписывать контент. может это можно как то по другому сделать главное чтобы при щелчке по элементу с классом .d менялась вкладка и контент переисовывался Для этого мне нужно событие select.Или можно как то по другому. Пытался live (click и бл бл бл) не работает .
Ответить с цитированием
  #4 (permalink)  
Старый 15.12.2009, 13:25
Аспирант
Отправить личное сообщение для IIIEPJIOK Посмотреть профиль Найти все сообщения от IIIEPJIOK
 
Регистрация: 23.12.2008
Сообщений: 75

Цитата:
главное чтобы при щелчке по элементу с классом .d менялась вкладка и контент переисовывался Для этого мне нужно событие select.Или можно как то по другому
Вопрос. Если что-то нужно при "щелчке", то зачем придумывать событие "селект", когда давно придумано 'онклик'? Или религия jQuery не позволяет этого?
Ответить с цитированием
  #5 (permalink)  
Старый 15.12.2009, 13:27
Аватар для e1f
e1f e1f вне форума
Профессор
Отправить личное сообщение для e1f Посмотреть профиль Найти все сообщения от e1f
 
Регистрация: 03.04.2009
Сообщений: 1,263

select сработает на ранее открытую вкладку только при установке collapsible. Попробуйте так:
$('.d').click(function(){$("#accordion").trigger('tabsselect')})

Но в этом случае будет два вызова события -- нужно это учитывать.

UPD IIIEPJIOK, религия не позволяет делать всякие приблуды аля "гнусный workaround", если имеются методы плагина.
Ответить с цитированием
  #6 (permalink)  
Старый 15.12.2009, 15:33
Аспирант
Отправить личное сообщение для xela1980 Посмотреть профиль Найти все сообщения от xela1980
 
Регистрация: 20.11.2009
Сообщений: 33

e1f Cпасибо огромное выручил. Сейчас все работает так как я хотел.
Сделал
$("#accordion").tabs("#accordion div", {
tabs:'.d',
effect:'horizontal'
});
а потом как ты и говорил
('.d').click(function(){
$("#accordion").trigger('tabsselect');

здесь написал свой код я там выбираю парамет и запихиваю в аякс потом получаю хмлину и тулю в нужный див. Все работает как надо.

});
Работает то оно работает только мог бы в двух словах объяснить КАК. я новичок в этом деле читал читал про триггер че то не особо въехал. Мог бы плиз на пальцах Спасибо за твою помощь,
Ответить с цитированием
  #7 (permalink)  
Старый 15.12.2009, 17:00
Аватар для e1f
e1f e1f вне форума
Профессор
Отправить личное сообщение для e1f Посмотреть профиль Найти все сообщения от e1f
 
Регистрация: 03.04.2009
Сообщений: 1,263

trigger просто вызывает определенные обработчики событий. Да, и для оптимизации, я бы проверил, чтобы не вызывалось 2 события tabsselect -- одно от плагина, второй от внешнего бинда на .click
Ответить с цитированием
Ответ


Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ищу jQuery плагин для создания меню Zeboton jQuery 9 15.09.2014 14:31
jquery - Как получить полный путь? kirill.adw jQuery 5 20.11.2009 16:40
syncTranslate jQuery плагин Snowcore Ваши сайты и скрипты 0 20.10.2009 18:00
Как правильно подгрузить jQuery Siton jQuery 4 15.06.2009 08:54
как проверить поддеружет браузер определенное событие? GOll Элементы интерфейса 9 24.07.2008 13:40