获取元素id并根据它执行get请求

时间:2017-12-01 07:31:47

标签: javascript jquery modal-dialog

我使用此元素来触发模态:

<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的行上)。 如果我再次点击它而不重新加载页面,它就可以了。

有没有什么方法可以让我在第一次点击时工作?我该怎么办?

1 个答案:

答案 0 :(得分:1)

评估以下代码时:

$('i').on('click', function(){
  id = $(this).attr('id');
});

正在声明id变量,但只有在用户点击i元素后才会填充该变量。

请注意,$.ajax请求将在声明变量后立即触发,而不是在填充后填充。

您可以考虑在$.ajax回调中移动click来电。