2013-06-13 16 views
6

Ben bot JavaScript aracılığıyla okuma ve aşağıdaki kodu fark edildi: o "click.modal.data-api" nedenOlay adı olarak click.modal.data-api ne anlama geliyor?

$(document).on('click.modal.data-api', '[data-toggle="modal"]', function (e) { 
    //do something 
}); 

birisi bana açıklayabilir. Etkinlikten sonraki nokta ne yapar? Belki körüm ama bunun hakkında konuşacak bir belge bulamıyorum.

+0

Oku: Bu sadece bu yaparak tetikleyebilir olay işleyicisi, beyanı

$(document).on('click.modal.data-api', '[data-toggle="modal"]', function (e) { //do something }); 

: İşte biraz snippet'tir FYI, bunun seçmenlerle ilgisi yok. Seçici, "$" veya ".on" için ikinci argüman olarak ilettiğiniz dizedir. Bu durumda etkinlik adı hakkında konuşuyorsunuz. –

+0

Yardımlarınız için teşekkürler Felix. Başlamak için kesinlikle emin değildim ama açıklamanız çok yardımcı oldu. – aashtonk

+0

Rica ederim :) –

cevap

3

Bu bir isim alanlı bir olaydır ve the documentation [docs] oldukça iyi anlatmaktadır:

Bir olay adı çıkarmadan veya olayı tetikleyen basitleştirmek olay ad tarafından nitelendirilebilir. Örneğin, "click.myPlugin.simple", hem bu MyPlugin'i hem de bu belirli click olayı için basit ad alanlarını tanımlar. Bu dize yoluyla eklenen bir tıklama olayı işleyicisi, öğelere eklenmiş diğer tıklama işleyicilerini rahatsız etmeden .off("click.myPlugin") veya .off("click.simple") ile kaldırılabilir. Ad alanları hiyerarşik olmadıkları için CSS sınıflarına benzer; sadece bir isim eşleşmelidir. Altçizgi ile başlayan ad alanları jQuery'nin kullanımı için ayrılmıştır.

0

'a bir göz atın. Bu konuda kesinlikle emin değilim, ama sanırım bir tür "kişisel olay tetikleme". Daha iyi açıklarım: kendi olay dinleyicilerini tanımlayabilir ve istediğin zaman onları tetikleyebilirsin. Örneğin, bir olayı myEvent tanımlayabilir ve yalnızca .trigger('myEvent') yaparak tetikleyebilirsiniz.

$(document).trigger('click.modal.data-api'); 

daha belgelerine yaklaşık .trigger(), .bind() ve .on()

+1

Bu aslında 'click' standart bir etkinlik olduğu için özel bir etkinlik değil. Bu bir "adlandırılmış" olay. –