Metod one
one metodu, bir öğeye olay işleyici
eklemeyi sağlar. Olay bir kez çalıştıktan
sonra - işleyici otomatik olarak
kaldırılacaktır.
Sözdizimi
Bir olay işleyicisini öğeye bu şekilde
ekleriz, ilk parametre olarak string
şeklinde boşluklarla ayrılmış bir veya
birden fazla olay iletilir, ikinci olarak -
JavaScript nesnesi şeklinde veri iletiriz,
bu veriler olay tetiklendiğinde işleyiciye
event.data özelliğinde iletilir. İkinci
parametre isteğe bağlıdır. Üçüncü olarak
olay nesnesinin iletildiği bir işleyici
fonksiyonu iletiriz veya false iletiriz:
$(selektör).one(olaylar, [veri], işleyici-fonksiyon(olay nesnesi));
İkinci parametre olarak, öğenin içindeki
alt öğeler için ek bir filtreleme
selektörü iletilebilir, üçüncü olarak -
olay tetiklendiğinde işleyiciye
event.data özelliğinde iletilen
ek veriler. İkinci ve üçüncü parametreler
isteğe bağlıdır. Dördüncü olarak
olay nesnesinin ve isteğe bağlı ek
parametrelerin iletildiği bir
işleyici fonksiyonu iletiriz. Eğer
işleyici fonksiyon yerine false
iletirsek, fonksiyon sadece
false döndürür:
$(selektör).one(olaylar, [selektör], [veri], işleyici-fonksiyon(olay nesnesi));
one metodunu farklı şekilde
kullanabiliriz, bu durumda ilk parametre
anahtarların olay türü, değerlerin ise
öğeye eklediğimiz işleyici fonksiyonu
olduğu bir JavaScript nesnesi iletilir:
$(selektör).one({'olay türü': handler}, [selektör], [veri]);
Eğer ek bir selektör iletmiyorsak, olay işleyiciyi eklediğimiz öğede tetiklenir, aksi takdirde - bu selektörle eşleşen alt öğede tetiklenir (delege edilmiş olaylar).
Örnek
Paragrafa tıklandığında, one
metoduna ilettiğimiz verileri
gösterelim. Sonraki tıklamalarda
hiçbir şey olmayacaktır. Oluşturduğumuz
testFunc işleyici
fonksiyonunu kullanalım:
<p>tıkla</p>
function testFunc(event) {
alert(event.data.text);
}
$('p').one('click', {text: 'aaa' }, testFunc);