محمد رضا
3 سال پیش توسط محمد رضا مطرح شد
3 پاسخ

تفاوت نوع دسترسی به یک المنت با document و بدون اون

سلام
من یک سوالی ذهمنو مشغول کرده ک چرا در جی کوئری گاهی نام کلاس یک المنت رو ک مینویسم برای دسترسی بهش، شناسایی نمیشه المنت، ولی با $(document) که این کار رو میکنم شناسایی میشه
این اتفاق گاهی پیش میاد ، ب نظرم زمانی که اون المنت به صورت پیشفرض نبوده توی صفحه و بعدا ب دلایلی افزوده شده با کد هایی نمیشناسه بدون document ، قضیه چیه واقعا؟
توی دو حالت زیر فرق این دو کد چیه ؟ چرا یکی کار کنه یکی نه؟
البته میگم در شرایطی گاهی پیش میاد ک حالت دوم کار نمیکنه

    $(document).on('click','.customers-suggest',function (){})
    $('.customers-suggest').click(function (){})

ثبت پرسش جدید
فرشید مرادی
تخصص : noob
@eniack 3 سال پیش مطرح شد
1

چیزی که من فهمیدم :
چون jquery با بعضی از پلاگین ها سازگار نیست مثل datatable ،
و با $document دستوری شبیه addeventlistenr جاوااسکریپت اجرا میشه و ما میتونیم به همه اجزای DOM دسترسی داشته باشیم.
دلیل اصلیش هم همینه که شما گفتید چون یک المنت باید حتما موقعی که صفحه رندر میشه داخل صفحه وجود داشته باشه چون برای استفاده از jquery ما از ابتدای اسکریپت ها از دستور document.ready استفاده میکنیم که یعنی موقعی که صفحه کامل لود شد و اجزای صفحه ساخته شد(اجزایی که به صورت استاتیک هستند ) بیا و از این دستورات استفاده کن


فرشید مرادی
تخصص : noob
@eniack 3 سال پیش مطرح شد
1

سلام ، دقیقا قضیه همینی هست که اشاره کردید بهش ، من وقتی از ajax استفاده میکردم دیگه نمیتونستم یک المنت رو سلکت کنم و باید به صورت $document‌ مینوشتم اون دستور رو.
البته یک جای دیگه هم این استفاده میشه داخلtable ها که حتما باید به جای $document آی دی table رو بدید یعنی محدوده ای که کلیک میشه رو تعیین کنید


محمد رضا
تخصص : Full Stack Developer
@salar.mohammad2013 3 سال پیش مطرح شد
0

اره دقیقا ، واسه جدول هم حتما باید tableid tbody رو بزنی بعد کلاس رو مشخص کنی که بشناسه اون المنت رو
ولی خب فرقش چیه دلیلش چیه


فرشید مرادی
تخصص : noob
@eniack 3 سال پیش مطرح شد
1

چیزی که من فهمیدم :
چون jquery با بعضی از پلاگین ها سازگار نیست مثل datatable ،
و با $document دستوری شبیه addeventlistenr جاوااسکریپت اجرا میشه و ما میتونیم به همه اجزای DOM دسترسی داشته باشیم.
دلیل اصلیش هم همینه که شما گفتید چون یک المنت باید حتما موقعی که صفحه رندر میشه داخل صفحه وجود داشته باشه چون برای استفاده از jquery ما از ابتدای اسکریپت ها از دستور document.ready استفاده میکنیم که یعنی موقعی که صفحه کامل لود شد و اجزای صفحه ساخته شد(اجزایی که به صورت استاتیک هستند ) بیا و از این دستورات استفاده کن


برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام