Skip to content

Commit 5122f74

Browse files
authored
Update article.md
1 parent 0d07b07 commit 5122f74

1 file changed

Lines changed: 24 additions & 21 deletions

File tree

2-ui/2-events/05-dispatch-events/article.md

Lines changed: 24 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -6,48 +6,51 @@
66

77
باز کردن (باز کردن منو)، انتخاب (یک مورد انتخاب شده است) و غیره. کد دیگری ممکن است به event ها گوش دهد و آنچه را که در منو اتفاق می افتد مشاهده کند.
88

9-
ما می‌توانیم نه تنها event های کاملاً جدیدی را که برای اهداف خود اختراع می‌کنیم، بلکه همچنین event های داخلی مانند کلیک، پایین آوردن ماوس و غیره را ایجاد کنیم. ممکن است برای آزمایش خودکار مفید باشد.
9+
ما می‌توانیم نه تنها event های کاملاً جدیدی را که برای اهداف خود اختراع می‌کنیم، بلکه همچنین event های داخلی مانند کلیک، پایین آوردن ماوس و غیره را ایجاد کنیم. ممکن است برای تست خودکار نرم افزار مفید باشد.
1010

1111
## Event constructor
1212

13-
کلاس های internal event یک سلسله مراتب را تشکیل می دهند، مشابه کلاس های عنصر DOM. ریشه کلاس رویداد داخلی است.
14-
15-
ما می توانیم object event ها را مانند این ایجاد کنیم: [Event](https://dom.spec.whatwg.org/#events)
13+
کلاس های event متعلق به زبان یک سلسله مراتب را تشکیل می دهند، مشابه کلاس های عنصر DOM. ریشه آن، کلاس درون‌ساخت [Event](https://dom.spec.whatwg.org/#events) است.
1614

15+
ما می توانیم اشیاء event را به این صورت ایجاد کنیم:
1716
```js
1817
let event = new Event(type[, options]);
1918
```
2019

2120
پارامتر ها:
2221

23-
- *نوع*: event type, یک رشته مانند `"click"` .
24-
- *گزینه ها*: شی ای با دو ویژگی اختیاری.
22+
- *type*: event type, یک رشته مانند `"click"` .
23+
- *options*: شی ای با دو ویژگی اختیاری.
2524
- *Bubbles*:اگر true بود یعنی bubbled می شود.
26-
- *لغو شدن (true/false)*: اگر ویزگی مقدار true را داشت عمل پیش فرض آن لغو میشود،
25+
- *cancelable (true/false)*: اگر ویزگی مقدار true را داشت عمل پیش فرض آن لغو میشود،
2726
- به صورت پیش فرض: `{bubbles: false, cancelable: false}`.
2827
-
2928
## dispatchEvent
3029

31-
پس از ایجاد یک event، باید آن را روی یک element با استفاده از فراخوانی elem.dispatchEvent(event) اجرا کنیم.
30+
پس از ایجاد یک event، باید آن را روی یک element با استفاده از فراخوانی `elem.dispatchEvent(event)` اجرا کنیم.
3231

3332
سپس هندلر ها به آن واکنش نشان می دهند که گویی یک event معمولی مرورگر است. اگر event با bubble flag ها ایجاد شده باشد، bubbled می شود.
3433

35-
در مثال زیر event کلیک در جاوااسکریپت آغاز می شود. هندلر به همان روشی کار می کند که اگر روی دکمه کلیک شده باشد:
34+
در مثال زیر رویداد `click` در جاوااسکریپت آغاز می شود. هندلر به همان روشی کار می کند که اگر روی دکمه کلیک شده باشد:
3635
```html run no-beautify
3736
<button id="elem" onclick="alert('Click!');">Autoclick</button>
3837

3938
<script>
39+
4040
let event = new Event("click");
4141
elem.dispatchEvent(event);
4242
</script>
4343
```
4444

45-
راهی برای تشخیص یک user event "واقعی" از event تولید شده توسط اسکریپت وجود دارد.
45+
```smart header="event.isTrusted"
46+
47+
راهی برای تشخیص یک user event "واقعی" از event تولید شده توسط اسکریپت وجود دارد.
4648
47-
ویژگی 'event.isTrusted' برای event هایی که از اقدامات واقعی کاربر ناشی می شوند 'true' و برای event های تولید شده توسط اسکریپت 'false' است.
49+
ویژگی 'event.isTrusted' برای رویدادهایی که از اقدامات کاربر واقعی ناشی می شوند 'true' و برای رویدادهای تولید شده توسط اسکریپت 'false' است.
50+
```
4851

4952

50-
## Bubbling example
53+
## مثالی از Bubbling
5154

5255

5356
می‌توانیم یک bubbling event با نام `"hello"` ایجاد کنیم و آن را در `document` بگیریم.
@@ -75,10 +78,10 @@ let event = new Event(type[, options]);
7578

7679
نکات:
7780

78-
1. باید از `addEventListener` برای custom کردن event ها استفاده کرد، زیرا `on<event>` فقط برای built-in event وجود دارد و `document.onhello` کار نمیکند.
79-
2. باید `bubbles:true` را set کنیم مگرنه event bubble up نخواهد شد.
81+
1. باید از `addEventListener` برای شخصی‌سازی eventها استفاده کرد، زیرا `on<event>` فقط برای eventهای متعلق به زبان وجود دارد و `document.onhello` کار نمی کند.
82+
2. باید `bubbles:true` را تنظیم کنیم وگرنه رویداد bubble up نخواهد شد.
8083

81-
مکانیک bubbling برای built-in (`click`) و custom (`hello`) یکسان است. هم چنین مراحلی برای گرفتن و bubbling نیز وجود دارد.
84+
مکانیک bubbling برای event درون‌ساخت (`click`) و event شخصی‌سازه‌شده (`hello`) یکسان است. هم چنین مراحلی برای capturing و bubbling نیز وجود دارد.
8285

8386
## MouseEvent, KeyboardEvent and others
8487

@@ -109,6 +112,7 @@ let event = new MouseEvent("click", {
109112
alert(event.clientX); // 100
110113
*/!*
111114
```
115+
112116
لطفا به یاد داشته باشد: constructor های generic `Event` اجازه این کار را نمیدهد.
113117

114118
بیایید این روش را امتحان کنیم:
@@ -125,15 +129,14 @@ let event = new Event("click", {
125129
alert(event.clientX); // undefined, the unknown property is ignored!
126130
*/!*
127131
```
128-
از نظر فنی، می‌توانیم با اختصاص مستقیم `event.clientX=100` پس از ایجاد، آن را حل کنیم. بنابراین این موضوع راحت و پیروی از قوانین است. event های ایجاد شده توسط مرورگر همیشه نوع مناسبی دارند.
129-
130-
لیست کاملی از property ها برای event های مختلف UI به تفکیک، برای مثال، [MouseEvent](https://www.w3.org/TR/uievents/#mouseevent).
132+
ااز نظر فنی، می‌توانیم با اختصاص مستقیم `event.clientX=100` پس از ایجاد، آن را حل کنیم. بنابراین این موضوع راحت و پیروی از قوانین است. event های ایجاد شده توسط مرورگر همیشه از نوع مناسبی هستند.
131133

132-
## Custom events
134+
للیست کاملی از propertyها برای eventهای مختلف UI در مشخصات زبان وجود دارد، برای مثال، [MouseEvent](https://www.w3.org/TR/uievents/#mouseevent).
135+
## event شخصی‌سازی‌شد
133136

134-
برای انواع events های کاملاً جدید خودمان مانند `"hello"` باید از "CustomEvent جدید" استفاده کنیم. از نظر فنی [CustomEvent](https://dom.spec.whatwg.org/#customevent) با «رویداد» یکسان است،البته با یک استثنا.
137+
برای انواع events های کاملاً جدید خودمان مانند `"hello"` باید از `new CustomEvent` استفاده کنیم. از نظر فنی [CustomEvent](https://dom.spec.whatwg.org/#customevent) با `Event` یکسان است،البته با یک استثنا.
135138

136-
در آرگومان دوم (object) می‌توانیم یک ویژگی «detail» برای هر اطلاعات که می‌خواهیم با event ارسال کنیم، اضافه کنیم.
139+
در آرگومان دوم (object) می‌توانیم یک ویژگی `detail` برای هر اطلاعات که می‌خواهیم با event ارسال کنیم، اضافه کنیم.
137140

138141
برای مثال:
139142

0 commit comments

Comments
 (0)