تجسم شما می تواند رویدادهایی را ایجاد کند که یک صفحه میزبان می تواند برای دریافت آنها ثبت نام کند. رویدادها میتوانند با اقدامات کاربر فعال شوند: برای مثال کاربر روی نمودار کلیک میکند، یا میتواند داخلی باشد: به عنوان مثال، هر 10 ثانیه یک رویداد را اجرا میکند. میتوانید یک متد جاوا اسکریپت را ثبت کنید تا هر زمان که رویدادهای خاصی فعال میشوند، احتمالاً با دادههای خاص آن رویداد، فراخوانی شود.
هر تصویرسازی رویدادهای خود را تعریف میکند، و مستندات مربوط به آن تجسم باید توضیح دهد که هر رویداد چه زمانی اجرا میشود، چه معنایی دارد و چه اطلاعاتی را برای مدیریت رویداد شما ارسال میکند (برای مثال، به تجسم orgchart مراجعه کنید). این صفحه توضیح میدهد که چگونه یک ایجادکننده تجسم میتواند رویدادها را فعال کند. برای اطلاع از نحوه ثبت نام مشتریان برای دریافت رویدادها، به صفحه Handling Events مراجعه کنید.
یک رویداد وجود دارد که هر تصویرسازی قابل انتخابی باید فعال شود: رویداد انتخاب. با این حال، رفتار و معنای این رویداد توسط هر تجسم تعریف می شود.
اگر یک تجسم بلافاصله پس از اینکه روش draw
کنترل را به کاربر بازگرداند برای تعامل آماده نباشد، تجسم باید فعال شود: رویداد آماده. رفتار و معنای دقیق این رویداد در قسمت The Ready Event تعریف شده است.
توجه به این نکته مهم است که رویدادهای Visualization API جدا و متمایز از رویدادهای استاندارد DOM هستند.
فهرست
شلیک یک رویداد
برای فعال کردن یک رویداد از تصویرسازی خود، تابع google.visualization.events.trigger()
را فراخوانی کنید. تابع انتظار پارامترهای زیر را دارد:
- تجسم منبع (معمولاً
this
مقدار است). - نام رویداد (رشته).
- جزئیات رویداد (Object). یک نقشه اختیاری (نام/مقدار) از جزئیات رویداد خاص.
مثال زیر نشان می دهد که چگونه یک تجسم رویداد انتخابی را پرتاب می کند:
MyVisualization.prototype.onclick = function(rowIndex) { this.highlightRow(this.selectedRow, false); // Clear previous selection this.highlightRow(rowIndex, true); // Highlight new selection // Save the selected row index in case getSelection is called. this.selectedRow = rowIndex; // Fire a select event. google.visualization.events.trigger(this, 'select', {}); };
صفحات میزبان می توانند برای دریافت رویدادهای شما با تماس با google.visualization.events.addListener()
یا google.visualization.events.addOneTimeListener()
ثبت نام کنند. مطمئن شوید که هر رویدادی را که شلیک می کنید به طور کامل مستند کنید.
رویداد انتخاب کنید
رویداد "انتخاب" یک رویداد استاندارد است که توسط بسیاری از تجسم ها در پاسخ به کلیک ماوس کاربر پرتاب می شود. اگر میخواهید یک رویداد را در پاسخ به کلیکهای ماوس فعال کنید، باید رویداد «انتخاب» را به روش استانداردی که در اینجا توضیح داده شده است پیادهسازی کنید:
- هنگامی که کاربر برخی از دادهها را در تصویرسازی انتخاب میکند، رویدادی را با نام "انتخاب" فعال کنید. رویداد هیچ آرگومانی را به توابع شنیداری ارسال نمی کند.
- همانطور که در بخش سند پیوندی توضیح داده شده است، متد
getSelection()
را در معرض دید قرار دهید. این روش باید شاخص های عناصر داده ای را که کاربر انتخاب کرده است برگرداند. - همانطور که در بخش مرجع توضیح داده شده است، یک متد
setSelection()
را نمایش دهید. همچنین برای یادگیری نحوه رسیدگی به رویدادها، به صفحه مدیریت رویدادها مراجعه کنید.
رویداد آماده
هر تجسمی باید یک رویداد "آماده" را اجرا کند که به روشی استاندارد کار می کند تا به توسعه دهنده اطلاع دهد که چه زمانی تجسم برای پردازش متدهای نامیده می شود. (با این حال، هیچ الزام مطلقی وجود ندارد که یک تجسم به این شکل رفتار کند؛ مستندات را برای تجسم خود بررسی کنید).
به طور کلی، تجسم هایی که رویداد "آماده" را نشان می دهند با مشخصات زیر طراحی می شوند:
- رویداد آماده هیچ خاصیتی را به کنترل کننده منتقل نمی کند (کنترل کننده تابع شما نباید انتظار داشته باشد که هیچ پارامتری به آن ارسال شود).
- تجسم باید رویداد آماده را پس از آماده شدن تجسم برای تعامل فعال کند. اگر ترسیم تجسم ناهمزمان باشد، مهم است که رویداد زمانی اجرا شود که روشهای تعامل واقعاً میتوانند فراخوانی شوند، و نه فقط زمانی که متد
draw
به پایان میرسد. - افزودن شنونده به این رویداد باید قبل از فراخوانی روش
draw
انجام شود، زیرا در غیر این صورت ممکن است رویداد قبل از تنظیم شنونده فعال شود و شما آن را نگیرید. - با فراخوانی متدهای تعامل قبل از اجرا شدن رویداد آماده، شما این خطر را می پذیرید که این روش ها به درستی کار نکنند.
قرارداد این است که تجسم هایی که یک رویداد "آماده" را اجرا نمی کنند بلافاصله پس از پایان روش draw
آماده تعامل هستند و کنترل را به کاربر باز می گرداند.