преобразование нативного объекта события js в объект события jquery - PullRequest
4 голосов
/ 19 декабря 2010

Я хочу преобразовать собственный объект события JavaScript в объект события jQuery.

На самом деле это проблема: Я связал обработчик событий с документами keyup event через jQuery, и на странице есть несколько текстовых полей, с которыми обработчик событий keyup связан через встроенный JavaScript.

Проблема в том, что при запуске обработчика события текстового поля также запускается обработчик события документа, поскольку событие «всплывает». Я могу изменить функцию обработчика события, связанную встроенным JavaScript, но не самой этой строкой.

Мне нужен кросс-браузер, способ отменить всплывающее окно события, поэтому я хотел преобразовать его в объект jQuery.

Ответы [ 3 ]

8 голосов
/ 11 ноября 2011

Глядя на код jQuery (я посмотрел на 1.7, но я думаю, что он доступен и раньше), легко создать событие jQuery из собственного события, используя:

var jQueryEvent = jQuery.Event(event);
6 голосов
/ 19 декабря 2010

Если все, что вы хотите сделать, это предотвратить всплывающее событие, это просто без jQuery.Не бойтесь выйти за пределы мира jQuery.Это не так сложно, как некоторые люди заставят вас поверить.

function stopEventPropagation(evt) {
    if (typeof evt.stopPropagation != "undefined") {
        evt.stopPropagation();
    } else {
        evt.cancelBubble = true;
    }
}

// Example
document.getElementById("yourInputId").onkeyup = function(evt) {
    evt = evt || window.event;
    stopEventPropagation(evt);
};
0 голосов
/ 19 декабря 2010

Вы можете удалить onclick или любые другие встроенные атрибуты обработчика событий с помощью jQuery сразу после загрузки страницы, например:

$(document).ready(function () {

  $('#someInput').removeAttr('onclick');

});

Затем присоедините ваши обработчики событий для настройки поведения.

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