# 14: Özel Etkinlikler - CSS Hileleri

Anonim

Etkinlikler hakkında az önce bahsettiğimiz için, şimdi özel etkinliklerden bahsetmenin tam zamanı. Şimdiye kadar bahsettiğimiz tüm olaylar tabiri caizse “gerçek” olaylardır. Bir tıklama veya tuşa basma gibi gerçekleşen gerçek şeylere dayalı olarak DOM'dan kaynaklanan olaylar. Bu olaylar jQuery'de yapay olarak "tetiklenebilir". Örneğin, bir düğmeyi "taklit etmek" için şunları yapabilirsiniz:

$("#some-button").trigger("click");

Ardından, bu düğmeye bağlı herhangi bir tıklama işleyicisi, bir kullanıcı gerçekten o düğmeye tıklamış gibi tetiklenir. Ama ya yaptıysak:

$("#some-button").trigger("dance");

O zaman ne olacak? "Dans" "gerçek" bir olay değildir. Ancak hiçbir hata atılmayacaktır. Sadece böyle olur, muhtemelen bu düğmeye bağlı "dans" eğitmenleri yoktur. Ama olabilir ve esasen özel bir olay budur. Sadece uydurduğunuz bir adı olan bir olay.

Neden bunu yapasın? Çoğunlukla organizasyonel nedenler. Belki de olayları ve eylemleri işleyen JavaScript'inizi ve verileri ve yönetimle ilgili şeyleri işleyen JavaScript'inizi ayırmak istersiniz. Bu çok makul. Bu düğme belki bir "Ayarları Kaydet" düğmesi olsaydı, "ayarları kaydet" adlı özel bir olayı tetikleyebilir ve başka bir yerde bu olayın ateşlenmesini bekleyen ve gerçek veri kaydetme işlemini yapan bir işleyiciye sahip olabilirsiniz. Videodaki örnekte yaptığımız temelde buydu.

Özel etkinlikler için başka bir kullanım örneği, genel kullanıcı arabirimi bileşenlerinin yazılmasıdır. Bu blog yazısında bundan bahsediyorum.

Belki de UI bileşeni olarak bir akordeon efekti oluşturuyorsunuz. Akordeon, tüm akordeonların yaptığı şeyi yapar, tıklamalar / dokunuşlarda panelleri açar ve kapatır. UI bileşeniniz bunu çok güzel yapıyor. Şimdi bu akordeonu kullanan bir geliştiricinin, kendisiyle olmasını istedikleri özel ve benzersiz şeyler olabilir. Hesap ayarları için akordeon kullandıklarını ve bir kullanıcı bir paneli kapattığında, o paneldeki form öğelerinden verileri kaydetmek istediklerini varsayalım. Bu akordeon kullanıcı arayüzü bileşeninin yazarının, söz konusu eylem gerçekleştiğinde geri arama işlevleri sunması geleneksel bir model olabilir. Akordiyonu başlattığınızda, bunlar olduğunda çağrılmasını istediğiniz geri arama işlevlerini iletirsiniz. Bu aşağı inilecek bir yol Akordeonun yaptığı tüm ilgili eylemler için özel etkinlikleri otomatik olarak tetiklemesi başka bir yol olacaktır.Bu panel kapandığında, birpanelClosedakordeon öğesinin kendisindeki olay. Daha sonra onunla çalışan geliştiriciler bu olaylara bağlanabilir. Organizasyon nedenleriyle gidebileceğiniz ve oldukça zarif olabilen başka bir yoldur.