تبلیغات :
ماهان سرور
آکوستیک ، فوم شانه تخم مرغی ، پنل صداگیر ، یونولیت
دستگاه جوجه کشی حرفه ای
فروش آنلاین لباس کودک
خرید فالوور ایرانی
خرید فالوور اینستاگرام
خرید ممبر تلگرام

[ + افزودن آگهی متنی جدید ]




نمايش نتايج 1 به 3 از 3

نام تاپيک: مشکل با event ها

  1. #1
    در آغاز فعالیت shahab.mos's Avatar
    تاريخ عضويت
    Mar 2010
    محل سكونت
    رشت
    پست ها
    3

    پيش فرض مشکل با event ها

    با سلام .
    من با نسبت دادن event ها به DOM Objects مشکل دارم .
    قطعه قطعه کد ها را تست کردم، تا مشکلی از نظر scope,null & undefined objects,... نداشته باشند .
    کد ها را تا جایی که ممکن بود ساده کردم ، تا جایی که به test تبدیل شدند .
    از jslint.com, firebug برای پیدا کردن error ها استفاده کردم.
    به جای کدهای native از کتابخانه jQuery و prototype استفاده کردم .

    نتیجه اینکه کدهای اصلی هیچ مشکلی ندارند و با inline script کار میکنند ،مانند این:
    [
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    اما از هر روشی برای نسبت دادن event استفاده میکنم، بی اثر است.
    مانند این :
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    وقتی event را به این ترتیب نسبت میدهم ، هنگام load صفحه ،event بدون نیاز به کلیک یا mouseover یا هر کار دیگر اجرا میشود ، ولی پس از آن دیگر نه ...
    من از چند روش
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    و
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    استفاده کرده ام .
    (واضح است اسکریپت ها بر localhost اجرا میشوند . )

  2. #2
    حـــــرفـه ای neopersia's Avatar
    تاريخ عضويت
    Oct 2006
    پست ها
    3,580

    پيش فرض

    آیا تابع getElementByClassName رو قبلاً تعریف کردید؟ چون همچین تابعی فکر نمیکنم اصلاً وجود داشته باشه!
    اونی که هست متد getElementsByClassName هست که میتونید روی نودها اجرا کنید. در ضمن این متد هم یک المنت رو برنمیگردونه که بتونید مستقیماً رویداد رو بهش وصل کنید. بلکه یک آرایه برمیگردونه که باید بزارید توی حلقه تا رویدادها رو بهش وصل کنید:
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    البته توی این کد که نوشتم رویداد اتچ نمیشه بلکه به طور کامل ریپلیس میشه.

    اتچ کردن رویدادها با جاوا اسکرپت یه مقدار مشکل کراس براوزر ایجاد میکنه بنابراین باید دو سه تا کد بنویسید که همه مرورگرها رو پشتیبانی کنه. اما بیشتر فریمورکها این مشکل رو در نظر گرفتند و کار رو ساده کردند. مثلاً با کتابخانه مورد علاقه من dojo اینجوری میشه
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    من jQuery استفاده نمیکنم سینتکسش دقیق یادم نیست (مطمئن هم نیستم که اتچ میکنه یا ریپلیس) اما فکر میکنم با جی کوئری هم اینطوری بتونید همین کار رو انجام بدید:
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    این قسمت در کد شما اشتباه هست:
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    به این دلیل که باید هندل تابع رو پاس بدید به رویداد اما در کد شما مقدار بازگشتی از تابع پاس داده میشه. درستش اینه:
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    وقتی که به صورت ()bar بنویسید، اسکرپت تابع bar رو اجرا میکنه و نتیجه رو ذخیره میکنه در حالی که باید تابع رو ذخیره کنه و در هنگام فراخوانی رویداد اجرا کنه

  3. 2 کاربر از neopersia بخاطر این مطلب مفید تشکر کرده اند


  4. #3
    در آغاز فعالیت shahab.mos's Avatar
    تاريخ عضويت
    Mar 2010
    محل سكونت
    رشت
    پست ها
    3

    پيش فرض

    سلام.
    از راهنماییتان متشکرم.
    مشکل من دقیقا همین بود .
    به همین دلیل با لود شدن صفحه ، event اجرا میشد به جای نسبت داده شدن.

    Dope.getElementByClass را تعریف کرده ام ، تنها یک نتیجه دارد.

Thread Information

Users Browsing this Thread

هم اکنون 1 کاربر در حال مشاهده این تاپیک میباشد. (0 کاربر عضو شده و 1 مهمان)

User Tag List

قوانين ايجاد تاپيک در انجمن

  • شما نمی توانید تاپیک ایحاد کنید
  • شما نمی توانید پاسخی ارسال کنید
  • شما نمی توانید فایل پیوست کنید
  • شما نمی توانید پاسخ خود را ویرایش کنید
  •