راکت
حل شده

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

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 متغییره بهمون آبجکت پس نمیداد فقط یه مقدار میداد
حالا من امیدوارم منظورم رو رسونده باشم

ثبت پرسش جدید

پاسخ‌ها

3
miladk313
miladk313
@miladk313

تخصص: برنامه نویس لاراول

بهترین پاسخ

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

miladk313
miladk313
@miladk313

تخصص: برنامه نویس لاراول

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

<!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

تخصص: فرانت اند وب

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

شاید پاسخ شما همین‌جا باشد

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

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