Триггерное событие onMouseOver программно в JavaScript

Есть ли способ программно инициировать onmouseover событие в плоскости JavaScript? или "извлеките" метод из onmouseover событие для вызова его непосредственно?

например,

<div id="bottom-div" onmouseover="myFunction('some param specific to bottom-div');">
    <div id="top-div" onmouseover="????????"></div>
</div>

главное отделение выше нижнего отделения, таким образом, onmouseover не будет запущен в нижнее отделение, которое мне нужен способ назвать myFunction('some param specific to bottom-div'); от главного отделения

28
задан Brian Tompsett - 汤莱恩 19 August 2019 в 09:46
поделиться

2 ответа

Это сработало для меня, по крайней мере, в IE9. Должна быть совместима с несколькими браузерами или близка к ней ...

function FireEvent( ElementId, EventName )
{
    if( document.getElementById(ElementId) != null )    
    {   
        if( document.getElementById( ElementId ).fireEvent ) 
        {
            document.getElementById( ElementId ).fireEvent( 'on' + EventName );     
        }
        else 
        {   
            var evObj = document.createEvent( 'Events' );
            evObj.initEvent( EventName, true, false );
            document.getElementById( ElementId ).dispatchEvent( evObj );
        }
    }
}

Для примера onmouseover, вызовите такую ​​функцию

FireEvent( ElementId, "mouseover" );
33
ответ дан Jonathan 28 November 2019 в 02:57
поделиться

Мне нужно было сделать что-то подобное, но я использую jQuery, и я нашел, что это лучшее решение:

Используйте функцию триггера jQuery.

$j('#top-div' ).trigger( 'mouseenter' );

Вы также можете добавить параметры к нему, если вам нужно. См. документацию jQuery для .trigger .

5
ответ дан thephatp 28 November 2019 в 02:57
поделиться
Другие вопросы по тегам:

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