علیرضا احمدی بابلانی : وب مهراز - جامعه برنامه نویسی ایران

چگونه باید event ها برای عنصر هایی که بصورت dynamic ساخته شده اند bind کنیم ؟

فرض کنید  من  کد زیر رو در html دارم :
<div class="pager">
</div>
حالا من از طریق javascript یا jquery  عناصر دیگیری رو به داخل عنصر با کلاس pager اضافه میکنم و html تبدیل میشود به :
<div class="pager">
   <a>1</a>
   <a>2</a>
   <a>3</a>
   <a>4</a>
</div>
حالا میخواهد به کلیک هر یک از عناصر a که در واقع صفحات هستند عدد آن عنصر نمایش داده شود. اما رویداد کلیک  چون این عناصر بصورت dynamic تولید شده است کار نمی کند  چه روشی باید پیش بگیریم ؟
// کد زیر بعلت داینامیک بودن عناصر کار نمی کند
$(document).ready( function (){ 
    $('.pager a').click(){
             alert($(this).text());
    }
});

پاســخ ها

7a1ba23bee0c433abe47664d2a9fa3c3
ایمان نکونام : بله  اگر عناصر بصورت داینامیک تولید شده باشند  دستور کلیک عمل نمی کند . برای اینکار از کد jquery زیر استفاده کنید :
$(document).ready(function (){ 
    $('.pager a').live("click" , function(){
          alert($(this).text());
    }
});
استفاده از live و bind کلیک در این  دستور .

در صورت استفاده از ajax نیز کد بالا به درستی عمل خواهد کرد.
جمعه 15 اسفند 1393 ساعت : 56 : 23
تعداد بازدید : 323
ارسال به دوستان

ارسال