ورود

View Full Version : اشکال در دادن همزمان effect به چند یهر



k_ce_esf
دوشنبه 27 شهریور 1391, 08:36 صبح
با عرض پوزش عنوان سوال "اشکال در دادن همزمان effect به جند div " است که اشتباه شد و ویرایش هم نمیشه
با سلام.
من توی صفحم چندین div دارم. div های اصلیم دارای id های 1و2و3و... هستند.درون هریک از این div ها یک div دارم که display آنها none است.id این div های داخلی را با توجه به div اصلی که درشون هست به صورت 1_d,
2_d,... دادم،مثلا id مربوط به div داخلی div با id :1 را 1_d گذاشتم.
میخوام یه effect روی mouseenter , mouseleave هریک از این div های اصلی بذارم که div های داخلیم را show , hide کنه.
اگه به صورت زیر عمل کنم جواب میده :

$("#" + 1).mouseenter(function () {
$("#" + 1 + '_d').stop(true, true).show('clip');
}).mouseleave(function () {
$('#' + 1 + '_d').stop(true, true).hide('clip');
});
$("#" + 2).mouseenter(function () {
$("#" + 2 + '_d').stop(true, true).show('clip');
}).mouseleave(function () {
$('#' + 2 + '_d').stop(true, true).hide('clip');
});
اما اگه همین کار را با حلقه forانجام بدم نتیجه نمیده :

for (var i = 1; i < 3; i++) {
var item_d = i + '_d';
$("#" + i).mouseenter(function () {
$("#" + item_d).stop(true, true).show('clip');
}).mouseleave(function () {
$('#' + item_d).stop(true, true).hide('clip');
});
}
اشکالش چیه؟
درضمن این effect ها را وقتی به این صورت تعریف میکنم در fire fox ،وقتی با موس روی div ها میرم به جای اینکه یه بار effect اجرا شه مدام این effect ادامه پیدا میکنه و stop نمیشه،چه کار کنم که این مشکل حل شه؟
خواهش میکنم کمکم کنید،کارم رو این مورد گیر کرده هرکاریم میکنم حل نمیشه:گریه:
خیلی ممنون

mrgraphy
دوشنبه 27 شهریور 1391, 13:13 عصر
سلام.
دوست عزیز این چیزی که شما میخوای پیاده سازی کنی از نظر منطقی و فنی غیر قابل اجراست.
شما باید یه متد بنویسی بعد اون متد رو هر چند دفعه که میخوای صدا بزنی.
اگر در مورد حلقه ها و back code ها اطلاع داشته باشی متوجه میشی که این کد ها اجرا نمیشن.
بلکه بعد از بارگذاری کامل صفحه ساخته میشن.
مثل اینکه یه دیوار رو بسازی بعد عایق کاریش بکنی و بعدش بخوای یه آجر رو بذاری بین بقیه آجر ها و این از نظر منطقی غیر قابله قبوله.

k_ce_esf
دوشنبه 27 شهریور 1391, 14:46 عصر
خیلی ممنون از راهنماییتون.
راهی که گفتید در مورد استفاده از متد کاملا درسته،دقیقا کدهای داخل حلقه for را یک متد کردم و اون متد را موقع ایجاد div ها صدا زدم و حل شد.
اما وقتی حلقه for هم بود کد ها اجرا می شد اما فقط آخرین نتیجه برای همه div ها باقی میموند،مثلا در مورد این مثال که من دو تا div ساختم با id های 1و2 وقتی موس روی هریک از div ها(1 یا 2) میره ،div داخلی دومی یعنی 2_d نمایش داده میشه.دلیلی که گفتید را متوجه نشدم،میشه بیشتر توضیح بدین؟
جواب دومین سوالم را هم نگرفتم،چه طوری میتونم مشکل اجرای مداوم effect مادامی که موس روی div هست را بگیرم؟این مشکل فقط در Fire Fox هست و در مرورگرای دیگه فقط effect یه بار اجرا میشه یعنی با بردن موس روی هر div ،div داخلی مربوطه با effect مشخص شده show میشه و همانگونه باقی میماند تا زمانی که موس از روی div حرکت کند.
اگه کمکم کنین خیلی ممنون میشم.

mrgraphy
چهارشنبه 29 شهریور 1391, 17:12 عصر
من یه سایت به شما معرفی میکنم که توی این سایت خیلی از این نمونه کد های پیچیده میتونید پیدا کنید.
توضیح دادنش یه مقدار سخت و پیچیده و طولانی هستش اگر تجربی یاد بگیرید بهتره.
www.9lessons.info

k_ce_esf
شنبه 01 مهر 1391, 08:54 صبح
خیلی ممنون سایت خوبی بود.
کسی نیست جواب سوال دوم منو بده:گریه:
چه طوری میتونم مشکل اجرای مداوم effect مادامی که موس روی div هست را بگیرم؟این مشکل فقط در Fire Fox هست و در مرورگرای دیگه فقط effect یه بار اجرا میشه یعنی با بردن موس روی هر div ،div داخلی مربوطه با effect مشخص شده show میشه و همانگونه باقی میماند تا زمانی که موس از روی div حرکت کند اما در Fire Fox مادامی که موس روی div هست مدام اون effect اجرا میشه .
خواهش میکنم کمکم کنین.