Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Инициализация плагина при изменении размеров окна браузера (https://javascript.ru/forum/jquery/36948-inicializaciya-plagina-pri-izmenenii-razmerov-okna-brauzera.html)

prison47 02.04.2013 00:13

Инициализация плагина при изменении размеров окна браузера
 
Здравствуйте, такой вопрос:
Имеется jquery плагин, вся логика его находится в методе this.init()
Мне нужно чтобы инициализация происходила заново при изменении размера окна браузера.
Пробовал через $(window).resize( но получается что, он при старте инициализируется, потом при изменении размеров окна, снова инициализируется и происходит что-то вроде дублирования.

danik.js 02.04.2013 01:33

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

prison47 02.04.2013 01:40

Плагин я сам делаю, код не скину потому как копаться в нем никто не будет. А жду я ответа на вопрос, как предотвратить дублирование при повторной инициализации.

danik.js 02.04.2013 01:45

Не нужно повторно вызывыть init() - это же очевидно.
Просто по onresize обновляй нужные тебе значения.

prison47 02.04.2013 01:53

Если честно не совсем понимаю как это сделать.
Вот у меня
Mate.prototype.init = function () {
this.img = this.element.children('img');
        this.popup =  this.element.find('a');

        // IMG SIZE
        this.imgWidth = this.img.innerWidth();
        this.imgHeight = this.img.innerHeight();

и т.д
Как мне их обновить? недогоняю :)

prison47 02.04.2013 02:03

Я же не думаю что каждую переменную нужно опять прописывать внтури функции обработчика.
Или их нужно поместить внутрь, а при инициализации вызвать через триггер?

danik.js 02.04.2013 02:19

Mate.prototype.init = function () {
    $(window).resize($.proxy(this, 'onResize'));
    ...
}
Mate.prototype.onResize = function () {
    this.imgWidth = this.img.innerWidth();
    this.imgHeight = this.img.innerHeight();
}

prison47 02.04.2013 02:42

Так получается что onResize вызывается только после изменения окна, но изначально он не вызывается

Deff 02.04.2013 02:50

prison47,
$(document).ready - первично ? ;)

danik.js 02.04.2013 02:59

Цитата:

Сообщение от prison47
Так получается что onResize вызывается только после изменения окна, но изначально он не вызывается

Ну так вызови при инициализации сам, в чем проблема.


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