Как вызвать (возможно) переопределенное событие? - PullRequest
0 голосов
/ 23 февраля 2012

Я создал jQuery UI Dialog и после отображения диалогового окна, где бы пользователь ни щелкнул, оно закрывается.Я добился этого, добавив событие click к тегу body.

$("body").click(function() {
   $("#myDialog").dialog("close").dialog("destroy");
});

Он отлично работает, кроме как внутри 3rd party Grid API Я использую и обнаружил этот исходный код Grid API, он определил событие onclick, как показано ниже:

this.obj.onclick = function(e){
    console.log("grid API clicked");
    this.grid._doClick(e||window.event);

    if (this.grid._sclE) {
        this.grid.editCell(e||window.event); 
    }

    (e||event).cancelBubble=true;
};

Когда я щелкаю внутри Grid, в моей файербаге отображается сообщение msg "grid API clicked", но событие щелчка моего тела не запускается, поэтому я думаю, что событие не всплывает до щелчка теласобытие, указанное в строке (e||event).cancelBubble=true;

Если я установлю это значение на false, щелчок по сетке не будет работать, и не будет необходимости изменять код в стороннем API.

Итак, есть ли обходной путь, чтобы заставить щелчок тела работать?

1 Ответ

0 голосов
/ 23 февраля 2012

Возможно, это упрощенно и не лучший способ сделать это, но если вы счастливы редактировать исходный код Grid API, добавьте это к нему ...

$("body").click();

Это вызовет событие click, определенное для элемента body. Если это не сработает, тогда происходит что-то еще.

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