myNotlar Logo

myn.addEvent()


Internet Explorer Firefox Opera

myn.addEvent() fonksiyonu, bir elemente olay dinleyici fonksiyon eklenmesini sağlar. Aynı zamanda eklenen bu fonksiyona event nesnesi aracılığıyla fare konumunu, farenin ve/veya klavyeden basılan tuşun verileri ile birlikte bir kaç standart özellik ve metot aktarılmasını sağlar. Elemente myn.addEvent() ile eklenen olay dinleyicisi myn.removeEvent() fonksiyonu ile kaldırılabilir.

Sözdizimi

myn.addEvent(elem, tip, fonk, yakala)
elemOlay dinleyicisinin ekleneceği elementi belirler.
tipBaşında "on" ön eki olmadan olay tipini belirler.Örn. "click"
fonkOlay dinleyici fonksiyonu veya ismini belirler.
yakalaOlayın aşağıya doğrumu yoksa yukarıya doğrumu yakalanacağını belirler. true ise aşağı doğru, false ise yukarı doğru yakalanır. Daha fazla bilgi için addEventListener metoduna ve Olay Akış Şemasına bakınız.

myn.addEvent() fonksiyonunun dönüş değeri bulunmamakla birlikte sadece Internet Explorer tarayıcısında işlem başarılı olursa "true", diğer türlü "false" döner. Diğer tarayıcılarda undefined döner. Bunun yanında, addEvent fonksiyonu, ilgili olay her gerçekleştiğinde olay dinleyici fonksiyona parametre olarak, event nesnesini birkaç özellik ve metod ekleyerek aktarır. Tarayıcılara göre farklılık gösterebilen event nesnesinin bazı özellik ve metodlarına ek olarak aşağıdaki özellik ve metodlar eklenir.

Event Nesnesine Eklenen Özellikler

ÖzellikAçıklama
event.targetOlay'ın yönlendirildiği hedef elementin referansını verir.
event.keyKlavyeden basılan tuşun kodunu verir.
event.fare.soldanXFare işaretçisinin sayfaya göre soldan uzaklığını verir.
event.fare.usttenYFare işaretçisinin sayfaya göre üstten uzaklığını verir.
event.fare.tusSolFarenin sol tuşuna basıldı ise true olur.
event.fare.tusSagFarenin sağ tuşuna basıldı ise true olur.

Event Nesnesine Eklenen Metodlar

Metot AdıAçıklama
event.preventDefaultVazgeçirilebilen bir Olay'ın ilgili element ve olay tipi için engellenmesini sağlar. Daha fazla bilgi için event.preventDefault() metoduna bakınız.
event.stopPropagationOlay akışının durdurulmasını sağlar. Daha fazla bilgi için event.stopPropagation() metoduna bakınız.

Yeni eklenen bu özellik ve metot isimleri event.fare hariç W3C DOM bildirimindekilerle aynıdır ve aşağıda belirtilen popüler tarayıcıların hepsinde çalışmaktadır.

Test Edilen Tarayıcılar : IE 6-7-8 beta / FF 2-3 / Opera 9.x / Safari 3 for Win / Google Chrome 0.2

Aşağıdaki örnek, myn.addEvent() fonksiyonu ile olay dinleyici eklenmesini ve event nesnesinin değerlerinin okunmasını göstermektedir.

<script type="text/javascript" src="mynotlar_addEvent.js"></script>
<script type="text/javascript" src="mynotlar_removeEvent.js"></script>

<style type="text/css">
#ornekKutu {
    width:100px; 
    height:100px; 
    background-color:#2277DD;
    color:white;
    text-align:center;
}
</style>
<input type="button" value="Olay Ekle (addEvent)" onClick="olayEkle()"/>
<input type="button" value="Olay Sil (removeEvent)" onClick="olaySil()"/>
<br/><br/>
<div id="ornekKutu">Tıkla Bana!</div>

<script type="text/javascript">

var ornekDiv = document.getElementById("ornekKutu");
function olayEkle()
{    
    myn.addEvent(ornekDiv, "mousedown", olayKontrol, true);
}
function olaySil()
{
    myn.removeEvent(ornekDiv, "mousedown", olayKontrol, true);
}
function olayKontrol(olay)
{
    alert("olay.target.id : " + olay.target.id +
    "\n-----------------------------------" +
    "\nolay.fare.tusSol : " + olay.fare.tusSol + 
    "\nolay.fare.tusSag : " + olay.fare.tusSag + 
    "\n-----------------------------------" + 
    "\nolay.fare.soldanX : " + olay.fare.soldanX + 
    "\nolay.fare.usttenY : " + olay.fare.usttenY);
}	
</script>
Test Edin


Tıkla Bana!

mynotlar_addEvent.js

/*
    "myn.addEvent()" Fonksiyon Betiği v1.0
    
    Telif Hakkı (c) 2008, mynotlar.com, Tüm hakları saklıdır.
    http://www.mynotlar.com 
*/

var myn = window.myn = window.myn || {};
if(document.addEventListener)
myn.addEvent = function(m, y, n, x) {
    if(m[y+n]) myn.removeEvent(m, y, n, !!x);
    m["myn_"+y+n] = n;
    m[y+n] = function(o) {
        try {
            o.mynotlar = "mynotlar";
            o.key = o.which;
            myn.addEvent.getEventPos(o);
            o.fare.tusSag = o.button == 2 ? true : false;
            o.fare.tusSol = o.button == 0 ? true : false;
        }catch(h){}        
        m["myn_"+y+n](o);
    }; return m.addEventListener(y, m[y+n], (x||false));
}; else myn.addEvent = function(m, y, n) {
    if(m[y+n]) myn.removeEvent(m, y, n);
    m["myn_"+y+n] = n;
    m[y+n] = function(o) {
        try {(o = event).mynotlar = "mynotlar";
            o.preventDefault = function(){o.returnValue = false}
            o.stopPropagation = function(){o.cancelBubble = true}
            o.target = (o.srcElement || null);
            o.key = o.keyCode;            
            myn.addEvent.getEventPos(o);
            o.fare.tusSag = o.button == 2 ? true : false;
            o.fare.tusSol = o.button == 1 ? true : false;
        }catch(h){}        
        m["myn_"+y+n](o);
    }; return m.attachEvent("on"+y, m[y+n]);
};
myn.addEvent.getEventPos = function(o) {
    var w = window, b = document.body;
    o.fare = {    
        soldanX:o.clientX+(w.scrollX||b.scrollLeft||b.parentNode.scrollLeft||0),
        usttenY:o.clientY+(w.scrollY||b.scrollTop||b.parentNode.scrollTop||0)
    }; return o;
}
 
myNotlar Hakkında
Telif Hakkı © 2007-2009 mynotlar.com Tüm Hakları Saklıdır. Kopyalanamaz. Yayınlanamaz.
E-Posta : support@myNotlar.com

| Tek Kişilik Oyunlar | Sudoku | Oyunlar |