Инициируйте событие с Прототипом

61
задан Rob W 28 December 2011 в 11:27
поделиться

3 ответа

event.simulate.js соответствия Ваши потребности.

я несколько раз использовал это, и это работает как очарование. Это позволяет Вам вручную триггерные собственные события , такие как щелчок или парение как так:

$('foo').simulate('click');

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

Для [1 110] пользовательские события можно использовать стандартный метод прототипа Event.fire() .

85
ответ дан Aron Rotteveel 24 November 2019 в 17:12
поделиться

Я не думаю, что существует тот, встроенный к Прототипу, но можно использовать это (не протестированный, но должен, по крайней мере, получить Вас в правильном направлении):

Element.prototype.triggerEvent = function(eventName)
{
    if (document.createEvent)
    {
        var evt = document.createEvent('HTMLEvents');
        evt.initEvent(eventName, true, true);

        return this.dispatchEvent(evt);
    }

    if (this.fireEvent)
        return this.fireEvent('on' + eventName);
}

$('foo').triggerEvent('mouseover');
35
ответ дан Roman Snitko 24 November 2019 в 17:12
поделиться

Я нашел этот пост полезным ... http://jehiah.cz/archive/firing-javascript-events-properly

Это описывает способ запуска событий как в Firefox, так и в IE.

function fireEvent(element,event){
    if (document.createEventObject){
        // dispatch for IE
        var evt = document.createEventObject();
        return element.fireEvent('on'+event,evt)
    }
    else{
        // dispatch for firefox + others
        var evt = document.createEvent("HTMLEvents");
        evt.initEvent(event, true, true ); // event type,bubbling,cancelable
        return !element.dispatchEvent(evt);
    }
}
5
ответ дан 24 November 2019 в 17:12
поделиться
Другие вопросы по тегам:

Похожие вопросы: