.on()
metodu ya da onun kısa yollarından biriyle tanımlanan olay işleyiciler
tetiklenerek olay olmuş gibi davranması sağlanır. Olay manual tetiklenebileceği gibi
.trigger()
ile de tetiklenebilir. .trigger()
ile tetiklenen
olay aynı doğal yolla tetiklendiği gibi davranır.
Versiyon 1.3 ile .trigger()
ile tetiklenen olaylar DOM ağacında yukarıya yayılırlar.
Bir olay işleyicinin olayı üst elemanlara yaymasını handler metoddan false
değer
dönerek ya da olaya iliştirilen olay işleyici fonksiyon içinde
event.stopPropagation() metodunu çağırarak
engellersiniz.
.on()
metodu ile özel olay tipi tanımladığımızda , .trigger()
metoduna vereceğimiz ikinci parametre faydalı olabilir. Örneğin yukarıda gösterdiğimiz koddaki
click
olayı yerine custom
özel olayını tanımlarsak ikinci
parametreden şöyle yayrarlanabiliriz:
Bir olay işleyicide ilk parametrede her zaman olay nesnesi gelir. .trigger()
ile
bir array içinde verilen parametreler, olay işleyiciye event
nesnesinden
sonra sırayla virgülle ayrılmış şekilde verilir. Versiyon 1.6.2 ile tek string ya da
sayı değer array içine konmadan verilebilir.
Not : Extra parametreler ile .on()
metodunda verilen
eventData
parametresi arasındaki fark, olayın tetiklendiği ana özel
bilgi gerekirse olur. eventData
olay işleyiciyi ilk bağlarken oluşan bir
değer, ama .trigger()
parametresi ise olayın gerçekleştiği andaki
bilgileri kullanabilir.
Not : window
'dan başka DOM nesneleri ve düz nesneler için eğer
tetiklenen olay adı nesne özelliklerinden birinin adı ile aynı olursa, jQuery bu
özelliği bir metod olarak çağırmaya çalışır (eğer olay işleyicide
event.preventDefault()
çağrılmamışsa ). Eğer bu davranışı istemiyorsanız bu metod yerine
.triggerHandler()
metodu kullanınız.
.triggerHandler()
gibi .trigger()
metodunu kullanmak, eğer olay tetiklenen nesnede olay adının başına on
getirildiğinde oluşan isimle aynı isimde bir metod varsa, jQuery o metodu çağırır. Örneğin
window
nesnesinde click
olayı tetikleniyorsa ve nesnede bir
onclick
metodu tanımlıysa jQuery onu da çağırır.
Not : Array olmayan bir düz nesne parametreyle tetikleme yapılıyorsa ve o
düz nesne içinde length
özelliği varsa parametreyi bir array içinde
vermelisiniz. Örnek [ { length: 1 } ]
.
Buton #2'yi tıklamak Buton #1'i tıklama kodunu da çalıştırır.
İlk formu submit()
fonksiyonu kullanmadan göndermek.
İlk formu submit()
fonksiyonu kullanmadan göndermek.
Olaya isteğe bağlı değerler göndermek.
Olay nesnesine isteğe bağlı değer göndermek.
Olay nesnesine veri geçirmenin alternatif yolu.
.
.