You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: 2-ui/2-events/05-dispatch-events/article.md
+8-9Lines changed: 8 additions & 9 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -156,10 +156,9 @@ alert(event.clientX); // undefined, the unknown property is ignored!
156
156
}));
157
157
</script>
158
158
```
159
-
ویژگی "detail" می تواند هر داده ای را داشته باشد. از نظر فنی میتوانیم بدون آن زندگی کنیم، زیرا میتوانیم هر ویژگی را پس از ایجاد یک شی `new Event` معمولی به آن اختصاص دهیم. اما `CustomEvent` فیلد `detail` ویژه ای را برای جلوگیری از conflicts با سایر properti های رویداد فراهم می کند.
159
+
ویژگی `detail` می تواند هر داده ای را داشته باشد. از نظر فنی میتوانیم آن را تنظیم نکنیم، زیرا میتوانیم هر ویژگی را پس از ایجاد یک شی `new Event` معمولی به آن اختصاص دهیم. اما `CustomEvent` فیلد `detail` ویژه ای را برای جلوگیری از conflicts با سایر property های event فراهم می کند.
160
160
161
-
162
-
علاوه بر این، event class توضیح میدهد که «چه نوع رویدادی» است، و اگر event is custom است، باید از `CustomEvent` استفاده کنیم تا مشخص شود که چیست.
161
+
علاوه بر این، کلاس event توضیح میدهد که «چه نوع رویدادی» است، و اگر event سفارشی باشد، باید از `CustomEvent` استفاده کنیم تا مشخص شود که چیست.
163
162
164
163
## event.preventDefault()
165
164
@@ -173,7 +172,7 @@ alert(event.clientX); // undefined, the unknown property is ignored!
173
172
174
173
بیایید یک مثال عملی ببینیم - یک خرگوش پنهان (ممکن است منوی بسته شدن یا چیز دیگری باشد).
175
174
176
-
در زیر میتوانید یک تابع #rabbit and hide() را مشاهده کنید که رویداد "hide" را روی آن ارسال میکند تا به همه علاقهمندان اطلاع دهد که خرگوش قرار است مخفی شود.
175
+
در زیر میتوانید یک element با آیدی `#rabbit` و یک تابع `hide()` را مشاهده کنید که رویداد `"hide"` را روی آن ارسال میکند تا به همه علاقهمندان اطلاع دهد که خرگوش قرار است مخفی شود.
177
176
178
177
هر کنترلکنندهای میتواند با `rabbit.addEventListener('hide',...)` به آن رویداد گوش دهد و در صورت نیاز، عمل را با استفاده از `event.preventDefault()` لغو کند. سپس خرگوش ناپدید نمی شود:
179
178
@@ -207,7 +206,7 @@ alert(event.clientX); // undefined, the unknown property is ignored!
207
206
</script>
208
207
```
209
208
210
-
نکته: event حتما باید flag `cancelable: true` را داشته باشد یا اینکه `event.preventDefault()` فراخوانی نمیشود.
209
+
نکته: event حتما باید `cancelable: true` را داشته باشد یا اینکه `event.preventDefault()` فراخوانی نمی شود.
211
210
212
211
## Events-in-events are synchronous
213
212
@@ -217,7 +216,7 @@ alert(event.clientX); // undefined, the unknown property is ignored!
217
216
218
217
به عنوان مثال، در کد زیر، رویداد `menu-open` در حین کلیک فعال می شود.
219
218
220
-
بلافاصله پردازش می شود، بدون اینکه منتظر پایان کنترل کننده `onclick` باشد:
219
+
بدون اینکه برای هندلر `onclick` صبر کند تا تمام شود، پردازش می شود:
221
220
222
221
بدون اینکه برای `onclick` هندلر صبر کند تا تمام شود، شروع به process شدن میشود:
223
222
@@ -248,7 +247,7 @@ alert(event.clientX); // undefined, the unknown property is ignored!
248
247
249
248
بیایید بگوییم که آن را دوست نداریم. ما می خواهیم ابتدا `onclick` به طور کامل پردازش شود، مستقل از `menu-open` یا هر رویداد تو در تو.
250
249
251
-
سپس میتوانیم `dispatchEvent` (یا یک تماس event-triggering) را در انتهای `onclick` قرار دهیم یا، شاید بهتر، آن را در `setTimeout` با تاخیر صفر قرار دهیم:
250
+
سپس میتوانیم `dispatchEvent` (یا یک فراخوانی event-triggering) را در انتهای `onclick` قرار دهیم یا، شاید بهتر، آن را در `setTimeout` با تاخیر صفر قرار دهیم:
252
251
253
252
```html run
254
253
<buttonid="menu">Menu (click me)</button>
@@ -269,11 +268,11 @@ alert(event.clientX); // undefined, the unknown property is ignored!
269
268
```
270
269
حالا `dispatchEvent` یه صورت asynchronously بعد از اینکه اجرای کد فعلی به اتمام رسید، run میشود، که شامل `menu.onclick`. پس event handler ها به صورت جدت و مستقل فعالیت میکنند.
271
270
272
-
خروجی خ.اهد بود:1 -> 2 -> nested.
271
+
خروجی به این ترتیب خواهد بود:1 -> 2 -> nested.
273
272
274
273
275
274
276
-
## Summary
275
+
## خلاصه
277
276
278
277
برای تولید یک event code، ابتدا باید یک event object ایجاد کنیم.
0 commit comments