我使用此元素来触发模态:
<i data-toggle="modal" id="'.$user->user_id.'" data-target="#modal-default" data-toggle="tooltip" title="Edit" class="fa fa-pencil-square-o"></i>
使用Javascript:
$('#modal-default').on('shown.bs.modal', function (e) {
e.preventDefault();
$('i').on('click', function(){
id = $(this).attr('id');
});
$.ajax({
method: "GET",
url: baseURL + 'users/test/view/' + id,
dataType: "json",
success: function(data){
$('#first').val(data.first_name);
$('#last').val(data.last_name);
$('#email').val(data.email);
$('#phone').val(data.phone_number);
}
});
});
首次点击图标时,模态显示,但不包含任何数据。此外,不会执行对URL的请求(不会出现在网络中)。控制台告诉我id未定义(在包含url的行上)。 如果我再次点击它而不重新加载页面,它就可以了。
有没有什么方法可以让我在第一次点击时工作?我该怎么办?
答案 0 :(得分:1)
评估以下代码时:
$('i').on('click', function(){
id = $(this).attr('id');
});
正在声明id
变量,但只有在用户点击i
元素后才会填充该变量。
请注意,$.ajax
请求将在声明变量后立即触发,而不是在填充后填充。
您可以考虑在$.ajax
回调中移动click
来电。