Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > JavaScript, Ajax
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 27.06.2020, 08:15   #1
spoon100500
Форумчанин
 
Аватар для spoon100500
 
Регистрация: 14.10.2016
Сообщений: 406
По умолчанию Запуск плагина jQuery Montage по событию click

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

Инициализация плагина:
Код:
let $container = $('#Extension2');
$container.montage({
               margin: 5,
               minw: 240,
               minh: 70,
               maxh: 400,
               fillLastRow: true,
               alternateHeight: true,
               alternateHeightRange: {
                  min: 320,
                  max: 500
               }
            });
В самом плагине событие resize:
Код:
(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 к кнопке:
Код:
$('#Menu_Icon').click(function(){$container.trigger("resize");});
не работает,

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

Сам плагин jQuery Montage
Еду медленно, но верно!
spoon100500 вне форума Ответить с цитированием
Старый 27.06.2020, 11:08   #2
spoon100500
Форумчанин
 
Аватар для spoon100500
 
Регистрация: 14.10.2016
Сообщений: 406
По умолчанию

На столько сложный плагин, что ни кто не знает как по клику запустить?
Еду медленно, но верно!
spoon100500 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
jQuery запуск Unnika JavaScript, Ajax 1 10.07.2017 22:16
объяснить строчку в jQuery скрипте (на 'click' для 'a[disabled]') Serge_Bliznykov JavaScript, Ajax 30 21.04.2015 10:53
Как переинициализировать объект плагина jquery? 1datr JavaScript, Ajax 0 18.01.2011 20:55
Jquery событие Click Shmblra JavaScript, Ajax 2 12.01.2011 09:28
Запуск макроса по событию tim13 Microsoft Office Excel 5 17.08.2009 13:33