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

تعریف کردن رویداد برای آبجکت

سلام دوستان
من 5 تا li بصورت آبجکت دارم که میخام با ادددایونت لی... براشون رویداد بزارم.
یعنی رو هرکدومشون کلیک با استفاده از کیبورد this متنشون رو بگیرم

let clickk=()=>{
    alert('click');
};
let li=document.getElementsByClassName('h-ch-t');
li.addEventListener('click',clickk);

ولی ارور Uncaught TypeError: li.addEventListener is not a function
میده
این کارو که تو html براشون رویداد مشخص کنیم میشه انجام داد و لی من دوست ندارم بصورت دستی برای همشون اینطوری کنم
یادم میاد تو jq مشابه کد بالارو میتونستم انجام بدم .شاید تو jq متغییره بهمون آبجکت پس نمیداد فقط یه مقدار میداد
حالا من امیدوارم منظورم رو رسونده باشم


ثبت پرسش جدید
miladk313
تخصص : برنامه نویس لاراول
@miladk313 4 سال پیش مطرح شد
2

خواهش میکنم
نه یک بار میاد همه ی li هایی که اون کلاس رو دارند میگیره و با foreach برای تک تکشون event ها رو ست میکنه . پس فقط به تعداد اون liها اجرا میشه دستور داخل foreach


miladk313
تخصص : برنامه نویس لاراول
@miladk313 4 سال پیش مطرح شد
2

با کد زیر میتونی این کارو انجام بدی

<!DOCTYPE html>
<html>
<body>

<ul>
<li class="h-ch-t">تست 1</li>
<li class="h-ch-t">تست 2</li>
<li class="h-ch-t">تست 3</li>
<li class="h-ch-t">تست 4</li>
</ul>

<script>

let clickk=()=>{
    alert('click');
};

[...document.querySelectorAll('.h-ch-t')].forEach(function(item) {
  item.addEventListener('click', clickk);
   });

</script>

</body>
</html> 

علیرضا
تخصص : فرانت اند وب
@sep28 4 سال پیش مطرح شد
0

@miladk313
سپاس
من تاحال با فروایچ کارنکرده بودم جالبه
ببخشید این کد یبار اجرا میشه یا دائم د حال اجراست تا وقتی که کلیک میشه؟


miladk313
تخصص : برنامه نویس لاراول
@miladk313 4 سال پیش مطرح شد
2

خواهش میکنم
نه یک بار میاد همه ی li هایی که اون کلاس رو دارند میگیره و با foreach برای تک تکشون event ها رو ست میکنه . پس فقط به تعداد اون liها اجرا میشه دستور داخل foreach


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

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