PDA

View Full Version : سوال: کلیک روی هر جای فرم به غیر از آن input خاص



hastiam
چهارشنبه 03 خرداد 1391, 10:42 صبح
سلام
من یک input Button دارم که وقتی روش کلیک میکنیم یک div باز میشه و حالا می خوام اگه هر جای فرم و یا روی یک input دیگه (غیر از آن input خاص) کلیک شد اگه اون divباز بود بسته بشه. آیا برای اینکار میشه از یک event خاص استفاده کنم؟
با تشکر

mehdi.mousavi
چهارشنبه 03 خرداد 1391, 11:38 صبح
سلام من یک input Button دارم که وقتی روش کلیک میکنیم یک div باز میشه و حالا می خوام اگه هر جای فرم و یا روی یک input دیگه (غیر از آن input خاص) کلیک شد اگه اون divباز بود بسته بشه. آیا برای اینکار میشه از یک event خاص استفاده کنم؟
با تشکر

سلام.
فرض می کنیم HTML امون این باشه:

<body>
<input type="button" id="btn1" value="button 1" />
<input type="button" id="btn2" value="button 2" />
</body>


در اینصورت، میتونیم بدین شکل عمل کنیم:

$(function () {
var dialogOpened = false;
$('#btn1').click(function () {
dialogOpened = true;
return false;
});

$(document).click(function () {
if (dialogOpened) {
//close the dialog...
dialogOpened = false;
}
});
});


اینجا، اگر روی button1 بزنیم، فرض می کنیم که Box رو باز می کنیم و Flag ای رو برای تشخیص باز بودن Dialog ست می کنیم (من برای اینکه متوجه بشید اینطوری نوشتم، شما لزومی به استفاده از flag ندارید). بعد event handler ای برای document click تعریف می کنیم، تا هر جایی از صفحه کلیک شد، بر اساس اینکه box باز هستش یا نه، پنجره مربوطه رو ببندیم. حالا وقتی روی Button1 میزنید، باید button1 رو نیز disable کنید و وقتی پنجره بسته شد نیز، باید اونو enable کنید. بدین ترتیب به هدفتون خواهید رسید.

موفق باشید.