Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Плагин jQuery - как сгенерить событие? / 3 сообщений из 3, страница 1 из 1
27.08.2015, 12:25
    #39037337
maxapet
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Плагин jQuery - как сгенерить событие?
Попробовал написать свой плагин. Нашёл кучу ссылок, но в основном это перевод одной и той же статьи, например вот это: Как написать плагин на jQuery .
Написал, как рекомендовано. А именно, загнал все методы плагина в объект methods, в том числе и метод init.
И столкнулся с такой проблемой: после инициализации плагина мне необходимо сгенерить событие initialized. Самое подходящее место для этого - перед завершением метода init. Но почему-то триггер не срабатывает в методе init.
Вот код:
Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
(function ($) {
    var defaults = {
// настройки по умолчанию для всех копий плаина
 };

    var methods = {
        init: function (options) {
            // актуальные настройки, будут индивидуальными при каждом запуске
            settings = $.extend({}, defaults, options); // settings - локальная, т.к. для каждого экземпляра должны быть свои настройки
            // определяем переменные. Локальные, т.к. для каждого экземпляра они должны быть свои
            $this = $(this); //родительский элемент (Блок в котором находится карусель)  
            $carousel = $this.children(':first'); // получаем дочерний элемент (UL) т.е. саму карусель
            itemWidth = $carousel.children().outerWidth() + settings.margin; // вычисляем ширину элемента
            itemHeight = $carousel.children().outerHeight() + settings.margin; // вычисляем высоту элемента                   
            itemsTotal = $carousel.children().length; // получаем общее количество элементов в карусели
            slideCnt = settings.slideCounter;
            running = false; //останавливаем процесс
            intId = null; // очищаем интервал. Переменная локальная, т.к. для каждого экземпляра должен быть свой таймер
            //size - размер для вычисления длины, зависит от ориентации карусели
            size = itemWidth;
 /*
настройка 
*/
            alert($(this).attr('id')); // возвращает id объекта, к которому цепляется плагин
            $(this).trgger('carousel.load'); // исключение: свойство триггер объектом не поддерживается

            return this;
        },
/*
другие методы
*/
    };
// единственная публичная функция плагина
    function doSlide(dir) {
/*
некоторые действия
*/
                       alert($(this).attr('id')); // возвращает пустую строку 
                        $(this).trigger('carousel.drawComplete'); // нормально генерится событие
        return this; 
    }

// главная функция плагина
    $.fn.carousel = function(method) {
        settings = null;
        // обеспечиваем внешний вызов методов плагина
        // логика вызова метода
        if (methods[method]) {
            return methods[method].apply(this, Array.prototype.slice.call(arguments, 1));
        } else if (typeof method === 'object' || !method) {
            return methods.init.apply(this, arguments);
        } else {
            $.error('Метод с именем ' + method + ' не существует для jQuery.carousel');
        }
        return this;
    };
})(jQuery);



В чём может быть дело? Как сгенерить событие из метода, входящего в свойство methods?
...
Рейтинг: 0 / 0
27.08.2015, 12:29
    #39037343
Alexander A. Sak
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Плагин jQuery - как сгенерить событие?
Может, потому что действительно нет такого: trgger
...
Рейтинг: 0 / 0
27.08.2015, 12:48
    #39037381
maxapet
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Плагин jQuery - как сгенерить событие?
Спасибо, действительно ошибся в написании. Теперь исключение пропало, но метод, назначаемый на это событие, всё же не вызывается. :-(
...
Рейтинг: 0 / 0
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Плагин jQuery - как сгенерить событие? / 3 сообщений из 3, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]