Сообщение от B~Vladi
|
В jQuery это обертка, кури исходники. Там же как пространства имен в именах событий.
|
Не ужто так сложно прочесть стандарты. Я не сказал что это как сделано в jQuery я сказал что по аналогии, тоесть я хочу проверить есть ли в браузере событие допустим "TratataEvent". идем твоим способом:
function test( event ) {
var status = false,
elem = document.createElement('div');
document.body.appendChild( elem );
elem.addEventListener( event, function() {
status = true;
}, false);
var evt=document.createEvent('HTMLEvents');
evt.initEvent( event ,true, true );
elem.dispatchEvent( evt );
document.body.removeChild( elem );
return status;
}
alert( test( 'TratataEvent' ) );
alert( test( 'click' ) );
alert( test( 'DOMMouseScroll' ) );
alert( test( 'onmousewheel' ) );
alert( test( 'mousewheel' ) );
Все эти тесты всегда выведут значение
true
Сообщение от B~Vladi
|
В jQuery это обертка, кури исходники.
|
Прокурены давно, и я не ставлю в пример jQuery, говорю что стандартные работают по тому же принципу.
А для ИЕ достаточно сделать такую проверку:
function test( event ) {
var status = false,
elem = document.createElement('div');
document.body.appendChild( elem );
try {
elem.fireEvent( event, document.createEventObject() );
status = true;
} catch ( _ ) {
}
document.body.removeChild( elem );
return status;
}
alert( test( 'onmousewheel' ) );
alert( test( 'onblahtest' ) );