مثال ـ رويداد گوش بزنگ به دكمه اي اضافه ميشود كه در هنگام كليك فعال شود.
document.getElementById("myBtn").addEventListener("click", displayDate);
متدaddListener( ) يك رويداد كنترل كننده را به عنصر مشخص شده متصل ميكند.
متدaddListner( ) ،يك كنترل كننده رويدادي را بيك عنصر متصل ميكند بدون اينكه كنترل كننده هاي موجود را بازنويسي كند .ميتوان چندين كنترل كننده رويدادي نوع مشابه مثل كليك بيك عنصر متصل نمود.
ميتوان رويداد گوش بزنگ را به هرشئDOM ازجمله شئ پنجره اضافه كرد . يعني فقط مخصوص عناصر HTMLنمي باشد .
هنگام استفاده ازaddEventListener( ) براي خوانائي بهتر جاوااسكريپت خودش را از نشانه گذاريHTML جدا ميكند، و اين امكان را ميدهد كه بتوان رويدادي گوش بزنگ به آن اضافه نمود، مخصوصا مواردي كه در نشانه گذاريHTML در نظر گرفته نشده است .
رويدادهاي اضافه شده را بسادگي با متدremoveEventListener( ) ميتوان حذف نمود.
فرم كلي اضافه كردن رويداد:
اولين پارامتر نوع رويداد را مشخص ميكند، مثل"click", "mousedown" يا هر رويداد ديگري ازHTML DOM
.دومين پارامتر تابعي است كه ميخواهيم هنگام رويداد فراخوان شود.
سومين پارامتر يك مقدار بولين است، كه مشخص ميكند كه ازحباب رويداد يا ثبت آن استفاده شود. اين پارامتراختياريست.
توجه ـ براي نوع رويداد از پيشوند"on"نبايد استفاده كنيد، مثلا "onclik" بجاي "click"درست نمي باشد .
مثال ـ هنگاميكه عنصر كليك ميشود پيغام"Hello World!"ظاهر ميشود .
element.addEventListener("click", function(){ alert("Hello World!"); });
همچنين ميتوان بنام يك تابع خارجي ارجاع كرد.
مثال ـ استفاده از نام تابعmyfunction
element.addEventListener("click", myFunction);
function myFunction() {
alert ("Hello World!");
}
متدaddEventListener( ) اين امكان را ميدهد كه بتوان چندين كنترل رويداد بيك عنصر اضافه كرد، بدون اينكه رونويسي شوند.
مثال ـ افزودن دو كنترل رويداد بيك عنصر
element.addEventListener("click", myFunction); element.addEventListener("click", mySecondFunction);
ميتوان رويدادهاي نوع مختلف بيك عنصر اضافه كرد، مثل"click","mouseover"
مثال ـ افزودن چند نوع رويداد بيك عنصر
element.addEventListener("mouseover", myFunction); element.addEventListener("click", mySecondFunction); element.addEventListener("mouseout", myThirdFunction);
متدaddEventListener( ) اين امكان را ميدهد كه بتوانيد كنترل رويدادي را به هرشئHTML DOM اضافه نمائيد، مثال عناصروسندHTML و شئ پنجره، يا ساير شئ هائيكه از رويدادها پشتيباني مي نمايند مثل شئxmlHttpequst
مثال ـ يك رويداد گوش بزنگ جهت تغيير اندازه پنجره براي كاربر
window.addEventListener("resize", function(){ document.getElementById("demo").innerHTML = sometext; });
هنگام ارسال مقادير پارامترهااز يك تابع ناشناس(anonymous function) استفاده كنيد، كه تابع مشخص شده با پارامترهافراخواني شود.
مثال ـ ارسال پارامتر در رويداد گوش بزنگ
element.addEventListener("click", function(){ myFunction(p1, p2); });
دو راه براي انتشار رويداد درHTML DOM وجود دارد، حبابي يا ثبتي .
انتشار رويداد راهي براي تعريف ترتبب اثر رويداد هنگام وقوع براي عناصرمرتب است .اگر يك عنصر <p>درداخل عنصر <div> باشد، وكاربر روي عنصر <p> كليك كند، كدام عنصر ابتدا بايد مديريت شود.
در روش حبابي ابتدا عنصر داخلي وسپس به ترتيب داخل به بيرون مديريت ميشود .يعني ابتدا عنصرp وبعد عنصرdiv
در روش ثبتي ابتدا عنصر بيروني وسپس دورني مديريت ميشوند ، يعني اول عنصرdiv وسپس عنصر p مديريت رويدادي ميشوند.
با متدaddEventListener( ) ميتوان نوع انتشار را با پارامتر"useCapture" مشخص كرد .مطابق فرمت رير:
مقدار پيش فرض آنfalse است، كه بمعني انتشار حبابي است .درصورتيكه مقدار آن trueتنظيم شود، انتشار ثبتي خواهد بود .
مثال ـ افزايش رويداد با پارامتر انتشار
document.getElementById("myP").addEventListener("click", myFunction, true); document.getElementById("myDiv").addEventListener("click", myFunction, true);
متدremoveEventListener( ) براي حذف كنترل رويدادي مورد استفاده قرار ميگيرد.يعني آنهائي كه باaddEventListener( ) ايجاد شدند ميتوان حذف نمود .
مثال ـ حذف كنترل رويدادي گوش بزنگ
element.removeEventListener("mousemove", myFunction);