我的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
});
答案 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");
});