Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Плагин JQuery tabs как подписаться нв событие перекл.вкладок (https://javascript.ru/forum/jquery/6688-plagin-jquery-tabs-kak-podpisatsya-nv-sobytie-perekl-vkladok.html)

xela1980 15.12.2009 12:04

Плагин 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').
При щелчке на ярлыке активной вкладки ничего не происходит.
Спасибо.

e1f 15.12.2009 12:37

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

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

xela1980 15.12.2009 13:13

Я сделал так как Вы посоветовали алерта нет. У меня проблема в том что этот виджет я использую как главное меню во вкладках скрыты подпункты, при переключении вкладок я хочу отлавливать событие и перезаписывать контент. может это можно как то по другому сделать главное чтобы при щелчке по элементу с классом .d менялась вкладка и контент переисовывался Для этого мне нужно событие select.Или можно как то по другому. Пытался live (click и бл бл бл) не работает .

IIIEPJIOK 15.12.2009 13:25

Цитата:

главное чтобы при щелчке по элементу с классом .d менялась вкладка и контент переисовывался Для этого мне нужно событие select.Или можно как то по другому
Вопрос. Если что-то нужно при "щелчке", то зачем придумывать событие "селект", когда давно придумано 'онклик'? Или религия jQuery не позволяет этого?

e1f 15.12.2009 13:27

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

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

UPD IIIEPJIOK, религия не позволяет делать всякие приблуды аля "гнусный workaround", если имеются методы плагина.

xela1980 15.12.2009 15:33

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

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

});
Работает то оно работает только мог бы в двух словах объяснить КАК. я новичок в этом деле читал читал про триггер че то не особо въехал. Мог бы плиз на пальцах Спасибо за твою помощь,

e1f 15.12.2009 17:00

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


Часовой пояс GMT +3, время: 22:54.