Штатный close у ui.window

edited March 22 in Technical questions

При клике на крестик который генерируется путем задания свойства close: true - вызывается метод hide(). А можно ли , опять же, штатными средствами, заменить его на вызов close() ?

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

И вопрос по собственно функции close(). Она разрушает весь объект window, включая навешенные на него события?

Comments

  • как вариант, можно в событии onHide вызвать this.close()

    {
        on:{
            onHide: function(){
                this.close();//or this.destructor();
            }
        }
    }
    
  • Об этом я думал, но не вариант. Мне нужно что hide() отрабатывал как обычно, потому что окно может быть скрыто другим способом.

  • edited March 23

    Добрый вечер,

    Об этом я думал, но не вариант. Мне нужно что hide() отрабатывал как обычно, потому что окно может быть скрыто другим способом.

    Можно попробовать заменить функционал внутри click хендлера с помощью define - https://snippet.webix.com/6jjhtqqa.

  • Да, вариант, но есть еще 1 момент который не дает это сделать. Я пытаюсь прототипировать ui.window, и в функции $init подобная конструкция не работает.

  • edited March 24

    Я пытаюсь прототипировать ui.window, и в функции $init подобная конструкция не работает.

    В $init хендлере вполне можно прикрепить неоходимые события следующим образом: https://snippet.webix.com/cdktv5b2 (по аналогии можно было бы также обратиться к this.attachEvent, как описано в данной статье).

  • Да, действительно, спасибо.
    Я не знал что такая конструкция как - config.on - возможна.

  • @Dzmitry
    Предложение интересное но как быть с хот кеем? ("esc")
    На данный момент его заменить невозможно.

  • edited March 24

    Предложение интересное но как быть с хот кеем? ("esc")

    Т.к. "Esc" является глобальным хоткеем (т.е. он действует в пределах каждого компонента), то можно разве что удалить его и назначить новый глобальный хоткей. Если брать за основу исходный функционал данного хоткея, то выйдет что-то вроде такого - https://snippet.webix.com/q7vpmtb5.

  • @Dzmitry
    Отличное решение! Большое спасибо! Главное чтобы в следующих версиях внутри хендлера не было длступа к другим приватным переменным.

Sign In or Register to comment.

Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!