View Full Version : راهنمایی درباره این کد
behnambest2000
جمعه 15 آذر 1392, 19:26 عصر
سلام
من با دستور toggle یک div رو hide و show می کنم . اما یه مشکلش اینجاست که فقط روی اون سلکتور مورد نظر باید کلیک کنیم تا مخفیش کنیم . من میخوام به غیر از اون هر جای صفحه که کلیک کردم اگر div ما show بود اون رو hide کنه .
با تشکر
<script>
$(document).ready(function(){
$("div.btn").click(function(){
$("#container").toggle(300);
});
});
</script>
Javidhb
شنبه 16 آذر 1392, 01:34 صبح
$('html').click(function() {
$('#container').toggle(300);
});
$('#container').click(function(event){
event.stopPropagation();
});
اول یه event برای کل html مینویسید... که با کلیک div#container رو show یا hide کنه.
اما توی قسمت دوم میاید میگید که اگه روی خود div#container کلیک شد... توقف کنه و دیگه نرو eventهای مربوط به المنتهای والد رو بررسی کن.
بدون قسمت دوم در واقع با کلیک روی خود div#container جاوااسکریپت میاد تمام eventهای المنتهای والد رو چک میکنه که html هم شاملش میشه! و با توجه به تعریف toggle برای المنت html، عمل toggle اتفاق می افته(چون html المنت والد div#container هست) ولی با stopPropagation اون مرحله چک کردن المنتهای والد و اجرای eventهاشون اتفاق نمی افته..
http://api.jquery.com/event.stopPropagation/ (http://api.jquery.com/event.stopPropagation/)
https://developer.mozilla.org/en-US/docs/Web/API/event.stopPropagation
http://www.w3schools.com/jquery/event_stoppropagation.asp
behnambest2000
شنبه 16 آذر 1392, 14:35 عصر
داداشدستت درد نکنه ولی من هرجای صفحه که کلیک میکنم این بازو بسته میشه
http://www.uploadax.com/images/93244449905519745913.png
http://www.uploadax.com/images/54598217907592907940.png
Javidhb
شنبه 16 آذر 1392, 16:56 عصر
عجیبه.... دمو رو ببین و یه تست دیگه هم بکن... مطمئن شو که اسمها و ... درسته.
دمـــــــو (http://jsfiddle.net/H6xMY/)
$('html').click(function() {
//تست کردم بودن شرط هم کار کرد!!!
$('#container').hide(300);
});
$('#container').click(function(event){
event.stopPropagation();
});
$("div.btn").click(function(event){
$("#container").toggle(300);
event.stopPropagation();
});
behnambest2000
شنبه 16 آذر 1392, 20:19 عصر
دمت گرم داد . کده درسته
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.