Форум программистов, компьютерный форум, киберфорум
jQuery
Войти
Регистрация
Восстановить пароль
 
1 / 1 / 2
Регистрация: 17.09.2016
Сообщений: 450
1

Запуск плагина jQuery Montage по событию click

27.06.2020, 11:09. Просмотров 212. Ответов 4
Метки нет (Все метки)

День добрый, подскажите, пытаюсь запустить плагин по нажатии на кнопку, но не выходит.

Инициализация плагина:
Javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
let $container = $('#Extension2');
$container.montage({
               margin: 5,
               minw: 240,
               minh: 70,
               maxh: 400,
               fillLastRow: true,
               alternateHeight: true,
               alternateHeightRange: {
                  min: 320,
                  max: 500
               }
            });
В самом плагине событие resize:
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
(function(window, $, undefined) 
    var $event = $.event,
        resizeTimeout;
        console.log($.event);
    $event.special.smartresize = {
        setup: function() {
            $(this).bind("resize", $event.special.smartresize.handler)
        },
        teardown: function() {
            $(this).unbind("resize", $event.special.smartresize.handler)
        },
        handler: function(event, execAsap) {
            var context = this,
                args = arguments;
            event.type = "smartresize";
            if (resizeTimeout) {clearTimeout(resizeTimeout)}
            resizeTimeout = setTimeout(function() {
                $(context).trigger(event.type, args)
                }, execAsap === "execAsap" ? 0 : 50)
        }
    };
    $.fn.smartresize = function(fn) {
        return fn ? this.bind("smartresize", fn) : this.trigger("smartresize", ["execAsap"])
    };
 
//тут еще код
 
$.fn.montage = function(options) {
        if (typeof options === 'string') {
            var args = Array.prototype.slice.call(arguments, 1);
            this.each(function() {
                var instance = $.data(this, 'montage');
                if (!instance) {
                    logError("cannot call methods on montage prior to initialization; " + "attempted to call method '" + options + "'");
                    return
                }
                if (!$.isFunction(instance[options]) || options.charAt(0) === "_") {
                    logError("no such method '" + options + "' for montage instance");
                    return
                }
                instance[options].apply(instance, args)
            })
        } else {
            this.each(function() {
                var instance = $.data(this, 'montage');
                if (instance) {
                    instance.option(options || {});
                    instance._reload()
                } else {
                    $.data(this, 'montage', new $.Montage(options, this))
                }
            })
        }
        return this
    }
})(window, jQuery);
Привязываю через trigger к кнопке:
Javascript
1
$('#Menu_Icon').click(function(){$container.trigger("resize");});
не работает,

добавляю click в плагин:
Javascript
1
2
3
4
5
6
setup: function() {
            $(this).bind("click resize", $event.special.smartresize.handler)
        },
        teardown: function() {
            $(this).unbind("click resize", $event.special.smartresize.handler)
        },
и через trigger к кнопке:
Javascript
1
$('#Menu_Icon').click(function(){$container.trigger("click");});
то же не работает.

Сам плагин jQuery Montage

Добавлено через 2 часа 33 минуты
На столько сложный плагин, что ни кто не знает как по клику запустить?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
27.06.2020, 11:09
Ответы с готовыми решениями:

Вызывать методы плагина jquery извне. Подружить два плагина
Написал свой плагин. Код уже набирается немаленький. А много ещё не реализовано. Планирую разделить...

Скачивание файла по событию Click
Здравствуйте! подскажите, как сделать, чтобы при нажатии, скачивался файл. Ну например, всплывает...

Как в скрипте обрабатывать по событию click несколько id
Есть скрипт спойлера который по клику на ссылку с id link1 открывает/закрывает блок look1 с...

Конфликтуют 2 плагина jQuery.noty и jquery.hotkeys-0.7.9
Всем доброго времени суток. jQuery.noty отказывается работать если используется...

4
896 / 829 / 197
Регистрация: 28.06.2012
Сообщений: 1,607
Записей в блоге: 4
27.06.2020, 11:24 2
Дмитрий Дмитрий, вы хотите чтобы изначально была кнопка и просто набор фотографий на экране, а потом, по клику на кнопку, фотографии монтировались в общую стену изображений?
0
1 / 1 / 2
Регистрация: 17.09.2016
Сообщений: 450
27.06.2020, 11:47  [ТС] 3
Soldado, дело в том, что кнопка показывает/скрывает меню слева и когда это меню появляется или убирается то фото адекватно не пересчитываются, образуются большие отступы это говорит о том, что плагин не работает, а вот если слегка сдвинуть окно то он адаптирует фото по окну, тут все понятно срабатывает resize, да же если заменить resize на click и кликнуть по #Extension2 то то же все ок.

Добавлено через 10 минут
по идее если клик работает на контейнере #Extension2 и запускает плагин то почему через toggle не работает?
Javascript
1
$('#Menu_Icon').click(function(){$container.trigger("click");});
0
896 / 829 / 197
Регистрация: 28.06.2012
Сообщений: 1,607
Записей в блоге: 4
27.06.2020, 12:55 4
Цитата Сообщение от Дмитрий Дмитрий Посмотреть сообщение
запускает плагин то почему через toggle не работает
Если речь идёт о событии, когда toggle поочередно выполняет одну из двух или более заданных функций , в ответ на "клик" по элементу, то в последних версиях этого уже нет. В них осталось лишь переключение видимости.
0
1 / 1 / 2
Регистрация: 17.09.2016
Сообщений: 450
27.06.2020, 12:59  [ТС] 5
нет не про очередное выполнение, про trigger речь, опечатался я.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
27.06.2020, 12:59

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Передать событию Click кнопке доп. информацию при ее программном нажатии
Всем привет! Подскажите пожалуйста, капал в разные стороны, в итоге ничего... На форме есть...

Изменить размер по событию click, при растягивании окна перерисовать сетку
Добрый вечер! Помогите изменить размер ячеек сетки по событию click(вообще хотел по вращению...

Вызов jquery по событию OnClickButton
Никак нигде в поисковиках не могу найти ответ на вопрос: В ASP.NET при создании обработчика по...

jQuery click()
Всем привет! Вот такой вопрос возник. Сразу код: http://jsfiddle.net/FaFnE/ Надо, чтобы...

В свойствах отсутствует процедура к событию "Click"
Среда Visual Basic STUDIO’2010 Professional На форме MainForm имеется 2 пункта меню "File" and...

Запуск сначала одного видео, потом по событию - запуск второго видео
У меня при заходе на сайт, весь сайт немного затемняется и делается не активным (ни ссылку ни...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.