2013-08-09 13 views

cevap

10

o @fires ve benzeri diğer olaya ilişkin etiketleri ile entegre olarak, uygun olay tipini belirlemede @event etiketini kullanarak daha iyi olurdu @listens, @typedef'un yapamadığı şekilde. İstediğiniz ayrıntı düzeyine bağlı olarak, bunları bile adlandırabilirsiniz. İşte temeller - jQuery'yi kullandığınız gibi yazacağım, sadece kodu biraz daha basit hale getirmek için.


Genellikle "belge" duygusu (veya pencereyi hale getirebileceğini kullanarak, bir yerli olay türünü belgelemek için çalışıyoruz yana vb bazı ad, sınıf adı, etkinlik türlerini eklemek istediğiniz veya edeceğiz küresel ya da doğal ya da gibi)

/** 
* @namespace document 
*/ 
sen, daha fazla ayrıntı elde ve

/** 
* @namespace root.events.mouse 
*/ 

gibi bir şey yapabileceğini isteseydi

Ama bu tartışmanın uğruna, sadece olacak 01 ile sopa.

Fare olaylarında çok fazla özellik var, ancak gerçekten önem verdiğiniz şeyleri belgelemeniz gerekiyor. İşte jQuery olayları ile uğraşırken en sık kullanılan özelliklerin bazılarını tanımlar adında bir jenerik typedef var:

/** 
* @typedef {{ 
* target: element, 
* which: number, 
* pageX: number, 
* pageY: number, 
* clientX: number 
* clientY: number 
* }} mouseEventParams 
*/ 

Şimdi bir fare olayı olmalı, bu yüzden farklı olay tanımlayabilirsiniz ne tür verilerin doküman haline getirdik Şimdi türler ve kendilerinin çok fazla tekrar etmeden özelliklerinin belgelendiğinden emin olun. Etkinlik adının ilk önce ad alanını, ardından bir '#' ve ardından etkinlik adını bildirerek uygun ad alanının bir parçası olduğunu belirtirsiniz.

/** 
* Mousedown Event 
* @event document#mousedown 
* @type {mouseEventParams} 
*/ 

/** 
* Mouseup Event 
* @event document#mouseup 
* @type {mouseEventParams} 
*/ 

bu olayları ve özelliklerini tanımlamak için alternatif bir yolu, her olay için aynı özelliklere umurumda değil seni varsayarak böyle bir şey yapmak olacaktır: İsterseniz

/** 
* Mousedown Event 
* @event document#mousedown 
* @type {object} 
* @property {element} target 
* @property {number} which 
*/ 

/** 
* Mouseup Event 
* @event document#mouseup 
* @type {object} 
* @property {number} pageX 
* @property {number} pageY 
* @property {number} clientX 
* @property {number} clientY 
*/ 

Başka bir dokümanda bulunan bir olaya atıfta bulunmak için, JSDoc'un her olay adına otomatik olarak event: dizgesini önceden düzenlediğini ve sadece olaylar için bir tür ad alanı olarak hareket ettiğini bilmeniz gerekir. Bu, @fires ve @listens adlarında, event: ad alanı ima edildiğinden, diğer doclet'lerden olaya atıfta bulunduğunda bu "ad alanını" içermeniz gerektiği anlamına gelir.

+1

Harika, AGES'in bu açıklamasını arıyordum. Çok teşekkürler! – sidneys

İlgili konular