在ajax响应元素上触发JQuery事件

时间:2017-10-18 05:03:28

标签: javascript php jquery ajax codeigniter

我的codeigniter项目中的事件触发有问题。我想在我的页面中动态加载表。该表通过ajax调用从我的控制器返回。我想在该表的范围内触发click事件。我在很多方面试过这个,但它不起作用。我在这里附上我的代码。请帮我找一个解决方案。

控制器:

$str = '<table>
         <tr>
            <td class="cost date" id="date_'.$request['SupplyID'].'">
               <span class="editable" style="display: none;">
                  <input type="text" class="expiry" autocomplete="off" data-date-id="date_'.$request['SMSSupplyID'].'">                                    
               </span>
               <span class="cnt" style="display: inline;">Choose</span>
            </td>
          </tr>
       </table>';
echo $str;
视图中的

脚本:

function loadmore()
    {
        var url;

        url =  '/SMS/SMS/loadMoreRequests';

        $.ajax({
            type: 'post',
            url: url,
            data: {
                limit:val
            },
            success: function (response) { console.log(response);

                $("#requestListTable").html(response); 
                val +=10;
            }
        });
    }

$('.date').find('.cnt').on('click', function(){ 
    console.log(1);       // for testing
});

我尝试了以下更改,但没有使用

1)

$('.date').find('.cnt').live('click', function(){ 
    console.log(1);       // for testing
});

2)

$('.date').find('.cnt').click(function(){ 
    console.log(1);       // for testing
});

3 个答案:

答案 0 :(得分:2)

你可以试试这个

$(document).find(".cnt").on("click",function(){
    console.log(1);       // for testing
});

答案 1 :(得分:2)

$("container for the table").on("click", ".cnt", function() {


});

您可以使用事件委派。将事件绑定到文档就绪的dom上的父元素。或者你可以简单地使用,

$("body").on("click", ".cnt", function() {


});

答案 2 :(得分:1)

您需要将事件委托给动态创建的元素。

 $(document).on('click','.cnt',function(){
  alert("Processing comes here");
 });