Bir işlevi etkinleştirmeden önce bir olay olup olmadığını kontrol etmek istiyorum. Sorun, Google Chrome'un, FireFox'ta bulunmayan Video öğesindeki "loadedmetadata" etkinliğini desteklemesidir. Bir olay işleyicisinin jQuery veya JS kullanarak var olup olmadığını nasıl kontrol edebilirim?
Ben (mantıksal olan) O Firefox'ta iyi çalıştı aşağıdaki$('video').bind('loadedmetadata', videoloaded);
videoloaded();
yaptı ama Chrome'da çalışırken, fonksiyon iki defa idam edildi. loadedmetadata
olay işleyicisinin, her tarayıcıda yalnızca bir kez işlevi çalıştırıp çalıştırmadığını kontrol edip etmediğini kontrol etmek istiyorum.
Böyle bir olasılık yoksa, bunun için herhangi bir zeki çalışma var mı?
@Peter: Ben jsFiddle üzerinde çalışan bunun bir örneğini ekledik. – BrunoLM
@Bruno - Başladığımdan biraz daha şaşkınım :( –
@Peter: Olayları bağlamak için her zaman jQuery kullanıyorsa, tüm eventhandler'in 'element.data (" events ")' üzerine depolandığı anlamına gelir. nesnenin olay hakkında bilgi içerdiği çeşitli nesneler içeren bir nesnedir, örneğin bir elemandaki olay 'x ',' element.data ("olaylar") "geri dönecektir:' ({x: [{handler: (function)() {}), data: (void 0), namespace: "", type: "x", guid: 31}]}) ' – BrunoLM