ইভেন্টে jQuery ব্যবহার করে ক্লিক করা উপাদান পান?


85

গতিশীলভাবে উত্পন্ন বাটনটি ক্লিক করা হয় তা সনাক্ত করতে আমি নিম্নলিখিত কোডটি ব্যবহার করছি।

$(document).on("click",".appDetails", function () {
    alert("test");
});

সাধারণত আপনি যদি ক্লিক করেন এমন উপাদানটি পেতে $('.appDetails').click()ব্যবহার করতে পারেন $(this)। আমি কীভাবে উপরের কোডটি দিয়ে এটি সম্পাদন করব?

এই ক্ষেত্রে:

$(document).on("click",".appDetails", function () {
    var clickedBtnID = ??????
    alert('you clicked on button #' + clickedBtnID);
});

উত্তর:


115

এটি হিসাবে সহজ হতে পারে

$(this)এখানেও ব্যবহার করুন

$(document).on("click",".appDetails", function () {
   var clickedBtnID = $(this).attr('id'); // or var clickedBtnID = this.id
   alert('you clicked on button #' + clickedBtnID);
});

4
দেখে মনে হচ্ছে আমি সার্ভার থেকে একটি ক্যাশে সমস্যা নিয়ে কাজ করছি। দুঃখিত
শয়তানের অ্যাডভোকেট

55
ES6 ব্যবহারকারীদের জন্য একটি সতর্কতা। তীর ফাংশনগুলি 'এটি' সেট করে না তাই এটি পিতামাতা হবে। সুতরাং, মূলত এখানে একটি তীর ফাংশন ব্যবহার করবেন না।
থোমাস-পিটার

4
@ থমাস-পিটার আমি বলছি আপনি
জ্যাক

4
@ থমাস-পিটার আমাকে কয়েক ডজন মিনিটের হতাশার হাত থেকে বাঁচিয়েছে, ধন্যবাদ।
মিলান ভেলিবেট

4
@ থমাস-পিটার আপনি আমাকে সবেমাত্র বাঁচিয়েছেন! আমি ৩০ মিনিটের মতো কেন জাগ্রত ছিল না তা জানার চেষ্টা করছিলাম ... ধন্যবাদ!
ক্রিসকোটো বিজি

54

আপনি আপনার ফাংশনে ইভেন্টের প্যারামিটারটি হারিয়েছেন।

$(document).on("click",".appDetails", function (event) {
    alert(event.target.id);
});

6
এটা আমার জন্য নিখুঁত ছিল। এটি ক্লিক করা উপাদানটিকে দেয় - $ (এটি) ইভেন্টটি সংযুক্ত থাকা উপাদানটিকেই দেয়।
বিল টারবেল

এটি নিখুঁত পদ্ধতি। ধন্যবাদ :)
স্বতাবজা হাজরা

34

এটি পরিচালনা করার প্রচলিত পদ্ধতি ES6 এর সাথে ভাল খেলছে না। পরিবর্তে আপনি এটি করতে পারেন:

$('.delete').on('click', event => {
  const clickedElement = $(event.target);

  this.delete(clickedElement.data('id'));
});

মনে রাখবেন যে ইভেন্টের লক্ষ্যটি ক্লিক করা উপাদান হবে, যা আপনার পছন্দ মতো উপাদান নাও থাকতে পারে (এটি ইভেন্টটি প্রাপ্ত শিশু হতে পারে)। আসল উপাদান পেতে:

$('.delete').on('click', event => {
  const clickedElement = $(event.target);
  const targetElement = clickedElement.closest('.delete');

  this.delete(targetElement.data('id'));
});

0

একটি সহজ উপায় হ'ল আপনার এইচটিএমএল ট্যাগের সাথে ডেটা বৈশিষ্ট্যটি পাস করা।

উদাহরণ:

<div data-id='tagid' class="clickElem"></div>

<script>
$(document).on("click",".appDetails", function () {
   var clickedBtnID = $(this).attr('data');
   alert('you clicked on button #' + clickedBtnID);
});
</script>
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.