2015-07-05 29 views
5

JQuery için aşağıdaki menüyü gösteren bir jFiddle ile bu sitede bu yazıya rastladım, ben de anlayamadığım bu sözdizimini gördüm.Bu JQuery kodu satırı ne anlama geliyor?

JFiddle: kodun http://jsbin.com/oxajeq/3/edit?html,css,js,console,output

Hattı Ben

$('#mini-logo')[logoSH](300); 

ben ilk bölümü mini logonun kimlikli elemanını seçer bilmesi, anlaması DEĞİL, ama ben ne kalanı hiçbir fikrim yok sözdizimi! kodda, [logoSH] gösterilebilir veya gizlenebilir, sonuçta() sonunda süre anlamına gelir. Bununla birlikte, bu sözdizimini kullanan hiçbir şey bulamıyorum. Ayrıca CSS3, JQUery, geçişler, efektler, animasyonlar, bunun ne olabileceğine dair bir şey ve şans yok. Yöntemler olan ve yöntemleri olmayan ancak parametreler alan başka şeyler buluyorum, ama bu kod gibi bir şey yok. İçinde ne olduğunu [] bilmek bir yöntem değil, ama ne olduğunu anlayamıyorum. Herhangi bir yardım için şimdiden teşekkürler.

+4

Bunun jQuery hakkında özel bir şey olmadığını unutmayın, yalnızca standart JavaScript nesnesi özellik erişimi. CSS ile ilgili değil. – nnnnnn

+0

JS'nin nasıl çalıştığını anlamaya çalışıyorum, zira akılda tuttuğunuz şeyle, özellikleri olan bir js nesnesi mi yoksa js/jquery işlevi mi? –

+0

'$ ('# mini-logo')', bir nesneyi döndüren '$' işlevini çağırır. Döndürülen nesne kullanabileceğiniz özelliklere ve yöntemlere sahiptir. – nnnnnn

cevap

11

Bu yapı, özelliklere erişmek için bracket notation dayanmaktadır. Burada uygulanacak yöntemin dinamik bir seçimine izin verir (show veya hide). logoSH"show" veya "hide". Hattınızı demektir

ya

$('#mini-logo')["show"](300); ya da

$('#mini-logo').show(300); veya $('#mini-logo').hide(300);

Bu ayrıca bulabileceği, ortak bir yapıdır olarak okuyabilir $('#mini-logo')["hide"](300);

üçlü operatör:

$('#mini-logo')[someBool ? "show" : "hide"](300); 

Not: süre yoktu, argüman olarak bir boolean alan toggle işlevini kullanabilirsiniz.

+0

Tamam, bu yüzden .show() ve .hide() 'in JQuery işlevleri olduğunu tahmin edeceğim. –

+0

@TannerSummers evet. Cevapta eklenmiş bağlantılar. –

+0

Geri dönüp JS'deki nesneleri, özellikleri ve işlevleri gözden geçirmem gerekiyor gibi görünüyor. Ben java ve C++ için çok alışkınım, bu kafamı karıştırıyor gibi görünüyor, Eğer doğru hatırlarsam, JS nesneleri değerlerle veya işlevlerle ve JS'de okuduğum web sitesindeki özellikleri içerebilir, bir nesnenin bir işlevinin object.function veya object ['işlev']. ama (JS) öğesi [function] (parameters) veya (JQuery) $ ('item') [function] (parameters) biçiminde hiç görmedim. Denys'e minnettarım teşekkür ederim :) –