Javascript-форум (https://javascript.ru/forum/)
-   ExtJS (https://javascript.ru/forum/extjs/)
-   -   Запрет дальнейшей обработки событий внутри обработчика (https://javascript.ru/forum/extjs/55022-zapret-dalnejjshejj-obrabotki-sobytijj-vnutri-obrabotchika.html)

khusamov 10.04.2015 12:58

Запрет дальнейшей обработки событий внутри обработчика
 
Здравствуйте!

Почему нельзя запретить дальнейшую обработку событий по return false; ?

Ext JS 5.1.0 - может баг этой версии экста?

Например следующий код не запрещает браузеру выводить свое контекстное меню:


Ext.onReady(function() {
    Ext.getBody().on("contextmenu", function() {
        Ext.Msg.alert("contextmenu", "contextmenu");
        return false;
    });
});


ПС. И кстати, тут код вообще не работает https://fiddle.sencha.com/#fiddle/l2d
Хотелось бы тоже понять почему.

novikov 10.04.2015 14:52

после Ext.getBody() не надо запускать getEl(), вам консоль об этом говорит:
TypeError: Ext.getBody(...).getEl is not a function
http://docs.sencha.com/extjs/5.1/5.1...method-getBody

Пустое тело не имеет высоты:
alert(Ext.getBody().getHeight());

Остановить дефолтное поведение браузера помогает первый параметр, передаваемый в обработчик события:

Ext.onReady(function() {
    
        var body = Ext.getBody();
        
        alert(body.getHeight());
        
        body.setHeight(1000);

        body.on("contextmenu", function(e) {
           e.stopEvent();
          	Ext.Msg.alert("fdfsd");
        });
    
});


пример

khusamov 11.04.2015 12:34

Спасибо! Чудеса, раньше было просто return false, а теперь какой-то спец-метод)))


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