رویدادها در jQuery
jQuery برای پاسخ دادن به رویدادهایی که در یک صفحه HTML اتفاق می افتد، بهینه شده است.
رویداد (Event) چیست؟
تمام کارهایی که در یک صفحه وب اتفاق می افتد و می توانیم به آنها پاسخ دهیم، رویداد (Event) گفته می شود.
مثال:
- حرکت موس برروی یک عنصر
- انتخاب یک radio button
- کلیک کردن برروی یک عنصر
واژه "اتفاق افتادن" اغلب همراه با واژه ی "رویداد" استفاده می شود. مثال: رویداد keypress زمانی اتفاق می افتد که یکی از دکمه های صفحه کلید را فشار دهید.
در جدول زیر، تعدادی از رویدادهای رایج در مدل DOM آورده شده است:
رویدادهای موس | رویدادهای صفحه کلید | رویدادهای فرم | رویدادهای صفحه/پنجره |
---|---|---|---|
click | keypress | submit | load |
dblclick | keydown | change | resize |
mouseenter | keyup | focus | scroll |
mouseleave | blur | unload |
نحوه استفاده از رویدادها در jQuery
بیشتر رویدادهای مدل DOM، یک متد معادل در jQuery دارند.
برای اختصاص دادن رویداد onclick به تمام تگ های <p>، می توانید مانند زیر عمل کنید:
قدم بعدی، مشخص کردن کاری است که باید به ازای رویداد onclick اتفاق بیافتد. باید یک تابع را به عنوان پارامتر به متد click ارسال کنید:
// action goes here!!
});
رویدادهای رایج در jQuery
$(document).ready()
این متد به شما اجازه می دهد تا یک تابع را زمانی که صفحه کاملاً بارگذاری شد، اجرا کنید. این رویداد قبلاً در مطلب jQuery Syntax توضیح داده شده است.
click()
این متد، یک تابع را برای پاسخ دادن به رویداد onclick یک عنصر، به آن اختصاص می دهد.
زمانی که کاربر روی یک عنصر HTML کلیک کند، رویداد onclick اتفاق می افتد.
در مثال زیر، زمانی که کاربر روی هر کدام از تگ های <p> در صفحه کلیک کند، پاراگراف مورد نظر را پنهان می کند:
dblclick()
این متد، یک تابع را برای پاسخ دادن به رویداد ondblclick یک عنصر، به آن اختصاص می دهد.
زمانی که کاربر روی یک عنصر HTML دوبار کلیک کند، رویداد ondblclick اتفاق می افتد.
mouseenter()
این متد، یک تابع را برای پاسخ دادن به رویداد onmouseover یک عنصر، به آن اختصاص می دهد.
زمانی که موس کاربر روی یک عنصر HTML قرار می گیرد، رویداد onmouseover اتفاق می افتد.
مثال (رویدادها در jQuery)
alert("You entered p1!");
});
mouseleave()
این متد، یک تابع را برای پاسخ دادن به رویداد onmouseout یک عنصر، به آن اختصاص می دهد.
زمانی که موس کاربر از روی یک عنصر HTML خارج می شود، رویداد onmouseout اتفاق می افتد.
مثال (رویدادها در jQuery)
alert("Bye! You now leave p1!");
});
mousedown()
این متد، یک تابع را برای پاسخ دادن به رویداد onmousedown یک عنصر، به آن اختصاص می دهد.
زمانی که موس کاربر روی یک عنصر HTML قرار دارد و چپ کلیک کند، رویداد onmousedown اتفاق می افتد.
مثال (رویدادها در jQuery)
alert("Mouse down over p1!");
});
mouseup()
این متد، یک تابع را برای پاسخ دادن به رویداد onmouseup یک عنصر، به آن اختصاص می دهد.
زمانی که موس کاربر روی یک عنصر HTML قرار دارد و چپ کلیک را رها کند، رویداد onmouseup اتفاق می افتد.
مثال (رویدادها در jQuery)
alert("Mouse up over p1!");
});
hover()
این متد، همزمان دو تابع را برای پاسخ دادن به رویداد onmouseover و onmouseout یک عنصر، به آن اختصاص می دهد.
زمانی که موس کاربر روی عنصر HTML قرار گیرد، تابع اول اجرا می شود و زمانی که موس از روی آن خارج می شود، تابع دوم اجرا خواهد شد.
مثال (رویدادها در jQuery)
alert("You entered p1!");
},
function(){
alert("Bye! You now leave p1!");
});
focus()
این متد، یک تابع را برای پاسخ دادن به رویداد onfocus یک عنصر، به آن اختصاص می دهد.
زمانی که علامت چشمک زن مکان نما روی یکی از اجزای فرم، مانند: Text Box قرار گیرد، رویداد onfocus اتفاق می افتد.
مثال (رویدادها در jQuery)
$(this).css("background-color","#cccccc");
});
blur()
این متد، یک تابع را برای پاسخ دادن به رویداد onBlur یک عنصر، به آن اختصاص می دهد.
زمانی که تمرکز از روی یکی از اجزای فرم خارج شود، رویداد onBlur اتفاق می افتد.
مثال (رویدادها در jQuery)
$(this).css("background-color","#ffffff");
});
jQuery Event Methods
- نوشته شده توسط امیر پهلوان صادق
- بازدید: 29041
دیدگاهها
سلام خسته نباشید من یه کد اسلایدر با جی کویری نوشتم الان میخوام یه اسلاید سلکتور نقطه ای برای اسلایدر بذارم و همینطور اینکه وقتی موس روی اسلایدر رفت متوقف بشه ..لطفا کمک ام کنید.
سلام دوست من، اصلا با جی کوئری کار میکنیم که کدامون کمتر و مختصر تر بشن، دلیلی نداره بخوای خودت بشینی اسلایدر کد بزنی، از پلاگین جیگوئری استفاده کن، یه اسلایدر اماده مثل owlcarusle یا slicse خیلی راحته کار ابهاشون، داکیومنتشونو بخونی تو پنج دقیقه اسلایدرتو انداختی، و برای کاستومایز کردنشم راحتی هر کار خواستی میتونی کنی باهاشون
سلام، پیشنهاد می کنم از اسلایدرهای آماده استفاده کنید.
beyamooz.com/jquery/340-jquery-plugin/2608-%D8%A2%D9%85%D9%88%D8%B2%D8%B4-%D8%B3%D8%A7%D8%AE%D8%AA-%D8%A7%D8%B3%D9%84%D8%A7%DB%8C%D8%AF%D8%B1-%D9%85%D8%AA%D9%86-%D9%88-%D8%AA%D8%B5%D9%88%DB%8C%D8%B1-%D8%AF%D8%B1-jquery
آموزش خوبی بود.
سلام..ممنون از سایت خیلی خوبتون ... آموزش رویدادها در jQuery عالی بود.
با سلام
برای رویداد mousedown نوشتین که در صورت کلیک چپ پیغامی را نشان میدهد در صورتی که برای راست کلیک هم همان پیغام را نشان میدهد.
علتش چیه؟
با سلام و تشکر
رویدادهایی که با ماوس سر و کار دارن، در حالت عادی برای کلیک چپ هستند. این رویدادها در صورت نیاز آرگومانی دارن که از اون میشه برای تشخیص کلیک راست و چپ و حتی middle هم استفاده کرد. با جستجو در گوگل میتونید نمونه مثالهای جالبی پیدا کنید.
خیلی ممنون از آموزش مفیدتون؛ واقعن استفاده بردم. تا اینجا که بهترین منبع آموزش بودین برام؛ انشاالله که ادامه پیدا کنه
با سلام
مطالب آموزش جی کوئری بسیار عالی و آموزنده بود از زحمات شما متشکرم
در پناه خدا باشید
رویداد cycle چی کار می کنه؟
تا جایی که میدونم چنین رویدادی نداریم.
کد رو بذارید تا ببینم مشکل از کجاست؟!
ببخشید این مال اسلاید بود نه رویداد حواسم نبود فکر کردم رویداده
I don't see any code.
واقعا سايت خوبي داريد
منوي ساختم که وقتي موس از روش جدا ميشه خيلي زود بسته مي شه مي خام کاري کنم که بعد از کنار رفتن موس يک مکس کوتاه يا همان يک ثانيه نمايش داده بشه و بعد آني بسته شه
که بيشتر براي گوشي هاي تلفن همراه کاربرد داره
ممنون میشم اگه کدش رو کامل برای من بنویسید من مبتدی هستم
با سلام و تشکر.
لطفا کدی که نوشتید رو بذارید تا بشه دقیق راهنمایی کرد.
سلام
چه جوری میشه با استفاده از جی کوری یک text اگه خالی بود یک پیغامی رو به ما نمایش دهد که فیلد حتما باید پر باشد.
با سلام
فرض کنید که به text مورد نظر یک id با نام textID دارد. حال باید در رویداد کلیک این کد رو بنویسید البته این یک مثال ساده برای این کار است:
if(jQuery("#tex tID").val() == ""){alert("this field is empty.");}
سلام
به یک رویدادی نیاز دارم که عنصر ایفریمم ارتفاع عناصر درونش را بگیرد
میدانید که خود عنصر ایفریم فرزندی ندارد بلکه وقتی که صفحه ای را درون آن باز میکنیم محتویاتی میگیرد.
میخام ارتفاع ایفریمم برابر ارتفاع محتویاتی باشد که میگرید
آیا شدنی هست؟
0 رای
سایت مایکروسافت در پاسخ به سوال کاربرانش درباره موضوع فوق، کدی را در آدرس support.microso ft.com/kb/27846 9 قرار داده است.
نکته 1: با توجه به اینکه کد بالا توسط مایروسافت ارائه شده، برای IE کار میکند اما برای براوزرهای دیگر لزوما کار نمیکند که برای حل این مشل میتوانید بجای جاوااسکریپت از jQuery استفاده کنید که تا حد زیادی cross browser عمل میکند. در لینکهای زیر نمونه کدهایی وجود دارد:
benalman.com/code/projects/jquery-resize/examples/resize/
css-tricks.com/snippets/jquery/fit-iframe-to-content/
sonspring.com/journal/jquery-iframe-sizing/
نکته 2: من حدسم این است که iFrame شما دارای عرضی مشخص (مثلا محدود به ستون کناری سایت شما) است و فقط دوست دارید ارتفاعش را به اندازه مناسب تعیین کنید. که در این صورت (فقط تنظیم خودکار ارتفاع) لازم است کمی در کد بالا تغییر ایجاد کنید. کدهایی هم که برنامهنویسان در وب پیشنهاد دادهاند همگی در مورد تغییر اتوماتیک ارتفاع بوده چرا که تغییر اتوماتیک عرض (width) بنظر ممکن نمیرسد (چون بسته به محتوای تصویری و جدولی و همچنین ارتفاع محتوا، عرض میتواند متغیر باشد) به همین خاطر معمولا width را حسب مکانش (مثلا ستون کناری یا فوتر) فیکس میکنند تا ارتفاع بتواند محاسبه شود.
سلام ممنون از سایت خوبتون
خواستم بدونم چرا در قسمت رویداد onmouseleave در قسمت توضیح اش نوشته اید که اگر onmouseout اجرا شود و مورد مشابه آن نیز در رویداد onmouseenter نوشته اید اگر onmouseover اجرا شود
ایراد تایپی است یا دلیل خاصی دارد؟ممنون
سلام خیر ایراد تایپی وجود ندارد ...!
onmouseleave = onmouseout
این رویداد، زمانی روی می دهد که، کاربر اشاره گر ماوس را از روی یک عنصر یا فرزندان آن عنصر بیرون ببرد.
onmouseenter = onmouseover
این رویداد، زمانی روی می دهد که، کاربر اشاره گر ماوس را بر روی یک عنصر یا فرزندان آن عنصر وارد کند.
برای کسب اطلاعات بیشتر در مورد کلیه رویدادهای JavaScript به لینک زیر مراجعه فرمایید:
www.beyamooz.com/jsref/344-html-dom/2630-dom-events
سلام , لطفا آموزش jQuey رو ادامه بدید . ممنون بابت آموزشات عالیتون