واضح آرشیو وب فارسی:سایت ریسک: nibble22-01-2009, 11:53 AMسلام من سه تا سوال در مورد جاوا اسکریپت داشتم من در رویداد onkeydown یک div یک تابع رو صدا زدم حالا می خوام کد کلیدی که زده شده رو به تابع بفرستم اما نمی دونم چه جوری؟ وقتی رویداد رو صدا می زنم می خوام مقدار left & top مربوط به div رو هم بگیرم اما بهم null می ده current_top=document.getElementById("div_img").style.top اما اگر اول به left & top مقدار بدم بعد مقدارشون رو بگیرم مشکلی نیست و مقدار رو نشون می ده و سوال آخر اینکه تابعی که مقدار عددی یک رشته رو نشون بده در جاوا اسکریپت چیه؟ neopersia22-01-2009, 02:35 PMسلام یه کد ساده نوشتم که باهاش میشه مشخص کرد که چه دکمه ای زده شده (کد دکمه رو بر میگردونه) البته باید div اول فوکوس بگیره تا رویدادش کار کنه! توی فایر فوکس 3 کار نکرد دلیلش رو دقیقاً نمیدونم اما با المنتهای فرم درست کار میکنه! اما با IE و اپرا مشکلی نداره. باید width و height هم داشته باشه وگرنه کار نمیکنه! توی همون تابع مربوط به رویداد مختصات top و left المنت هم مشخصه! <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>js test</title> <script type="text/javascript"> function AlertEvent(obj, sKey) { var msg = ""; msg += "keyCode : " + sKey + " "; msg += "top : " + obj.offsetTop + " "; msg += "left : " + obj.offsetLeft + " "; alert(msg); } </script> </head> <body> <div onkeydown="AlertEvent(this, event.keyCode)" style="width:200px; height:200px;">DIV CONTENT</div> </body> </html> در مورد سوال سوم هم میتونید از تابع parseInt استفاده کنید.برای مقادیری که قابل تبدی شدن به عدد باشن integer بر میگردونه، در غیر این صورت NaN برمیگردونه nibble23-01-2009, 03:16 PMسلام واقعا ممنون مشکلم به شدت حل شد اما توی fier fox اصلا اجرا نمی شه اصلا رویداد های key اجرا نمی شن حالا این رو چه کار کنم؟ و اینکه من این کد رو نوشتم برای حرکت دادن یک عکس اما ببنید این عکس رو وقتی حرکت می دم زیر select می یفته هر چی z_index رو هم تغییر می دم بازم زیر select می یفته اگر این مشکل من رو حل کنید واقعا ممنون می شم چون من قبلا هم این مشکل رو داشتم اینک کدش: !!!! برای مشاهده محتوا ، لطفا ثبت نام کنید / وارد شوید !!!! ببخشید اگرکدش طولانیه DreaMaryam24-01-2009, 12:03 PMسلام یه سوال دارم یه کم بی ربطه ولی خواستم تو یه قسمت javascript بنویسم. استفاده از کدهای java در طراحی صفحات مشکلی ایجاد نمی کنه؟ منظورم اینه که همه مرورگرها می تونند آن رو اجرا کنند ؟ چون تو حالت preveiw برای دیدنش تو internet explorer باید قسمت popup رو غیر فعال کرد. می خوام ببینم اگه از این کدها تو صفحه استفاده کنم ممکنه هر بیننده ای نتونه اون رو ببینه؟ nibble24-01-2009, 12:29 PMسلام یه سوال دارم یه کم بی ربطه ولی خواستم تو یه قسمت javascript بنویسم. استفاده از کدهای java در طراحی صفحات مشکلی ایجاد نمی کنه؟ منظورم اینه که همه مرورگرها می تونند آن رو اجرا کنند ؟ چون تو حالت preveiw برای دیدنش تو internet explorer باید قسمت popup رو غیر فعال کرد. می خوام ببینم اگه از این کدها تو صفحه استفاده کنم ممکنه هر بیننده ای نتونه اون رو ببینه؟ بله خوب ممکنه اما از اونجایی که جاوا اسکریپت client side هست برای یه سری کارها خیلی استفاده می شه neopersia24-01-2009, 06:15 PMسلام من کد شما رو یه کم دستکاری کردم تا توی همه مرورگرها اجرا بشه. شاید زیاد اصولی نشده باشه ولی کار میکنه! اما نتونستم گزینه های لیست رو بفرستم زیر! به نظرم اگر نشه کاراهی پیدا کرد بهترین روش اینه که لیست رو با استفاده از div و چند تا لینک جاوا اسکرپتی شبیه سازی کرد! <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>Untitled Document</title> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <style type="text/css"> #div_body { width:750px; float:left; background-color:#993; } #img { position:absolute; left:200px; top:200px; z-index:100; width:210px; height:210px; background:#fff url(image.gif) center center no-repeat; border:none; color:#FFF; cursor:crosshair; } </style> <script type="text/javascript"> step=20 function move(obj,code) { new_top=obj.offsetTop; new_left=obj.offsetLeft; switch (code) { case 38://up if(new_top<step) new_top=0 else new_top=new_top-step break case 40://down new_top=new_top+step break case 37://left if(new_left<step) new_left=0 else new_left=new_left-step break case 39://right new_left=new_left+step break } document.getElementById("img").style.left=new_left + "px" document.getElementById("img").style.top=new_top + "px" } </script> </head> <body> <div id="div_body"> <form action="" method="get"> <table width="100%" border="0"> <tr> <td>Name:</td> <td><input type="text" name="textfield 2" /></td> </tr> <tr> <td>City</td> <td><select name="select"> <option value="1">aaaaaaaaa</option> </select></td> </tr> <tr> <td> </td> <td><input type="submit" name="Submit" value="Submit" /></td> </tr> </table> </form> <input type="text" id="img" onkeydown="move(this,event.keyCode)" readonly="readonly" /> </div> </body> </html> nibble27-01-2009, 09:39 PMسلام ممنون چه جور می شه لیست رو با div شبیه سازی کرد ؟ می شه توضیح بدید؟ TemplateMonster28-01-2009, 01:46 AMو اینکه من این کد رو نوشتم برای حرکت دادن یک عکس اما ببنید این عکس رو وقتی حرکت می دم زیر select می یفته هر چی z_index رو هم تغییر می دم بازم زیر select می یفته این یکی از باگهای مرورگرهاست. فکر کنم فقط IE همچین مشکلی داره، ولی راه حل سادهش اینه که عناصر فرمت رو قبل از اون عنصر divت تعریف کنی. یه چیز دیگه، همهی عناصری که قراره z-index داشته باشن باید مقدار positionشون absolute یا relative باشه. اینجا فکر میکنم چون اون عنصر select همچین خاصیتی نداره اینجوری میشه. neopersia29-01-2009, 12:58 AMسلام ممنون چه جور می شه لیست رو با div شبیه سازی کرد ؟ می شه توضیح بدید؟ الان نمیتونم کدش رو بنویسم ولی این به ذهنم میرسه که فکر میکنم کار کنه: میتونید یک تکست باکس بزارید برای گرفتن مقدار گزینه ها اما به صورت readonly که نشه مستقیم توش نوشت بعدش همه گزینه های لیست رو بزارید توی یک div نامرئی که با کلیک بر روی تکست باکس مرئی بشه و با کلیک بر روی هر کدوم از المنتهای لیست مقدار موبوط به اون گزینه به عنوان مقدار تکست باکس وارد بشه! با تغییر مقدار تکست باکس یا با حذف فوکوس از گزینه ها هم باید دوباره لیست نامرئی بشه! در هر حال من اگه بخوام یه لیست با جاوا اسکرپت بسازم همینطوری عمل میکنم حالا با یه کم تغییر :31: یه کم روش کار کنید اگه به دردتون خورد و جایی مشکل داشتید مطرح کنید تا با هم حلش کنیم (این مسئله توی تاپیک جدا بحث بشه بهتره) سایت ما را در گوگل محبوب کنید با کلیک روی دکمه ای که در سمت چپ این منو با عنوان +1 قرار داده شده شما به این سایت مهر تأیید میزنید و به دوستانتان در صفحه جستجوی گوگل دیدن این سایت را پیشنهاد میکنید که این امر خود باعث افزایش رتبه سایت در گوگل میشود
این صفحه را در گوگل محبوب کنید
[ارسال شده از: سایت ریسک]
[مشاهده در: www.ri3k.eu]
[تعداد بازديد از اين مطلب: 389]