перенести событие из одного дома в другой дом в JavaScript - PullRequest
2 голосов
/ 03 апреля 2010

В javascript, скажем, я получил два узла (узел A, узел B). когда я нажимаю на узел A, могу ли я перенести событие «щелчка» на узел B, чтобы выполнялся обработчик событий для узла B.

1 Ответ

4 голосов
/ 03 апреля 2010

Инициирование события щелчка довольно просто для кнопок и других элементов ввода, у них есть метод click():

elementA.onclick = function () { elementB.click(); }

Это немного сложнее с другими событиями или элементами, которые не поддерживают метод click, вам нужно вызвать событие, используя fireEvent или dispatchEvent, в зависимости от браузера:

elementA.onclick = function () {
    var elementB = document.getElementById("elementB");
    if ("dispatchEvent" in elementB) {
        var evt = document.createEvent("MouseEvents");
        evt.initMouseEvent("click", true, true, window,
            0, 0, 0, 0, 0, false, false, false, false, 0, null);
        elementB.dispatchEvent(evt);
    }
    else if ("fireEvent" in elementB)
        elementB.fireEvent("onclick");
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...