使用显示模块模式从动态元素获取元素 ID

Getting element ID from dynamic element using Revealing Module Pattern

我有一个动态创建一些元素的模块。由于它们是动态创建的,因此我使用包含动态创建元素的静态元素 $('#data-container) 绑定事件,如下所示:

var $dataContainer = $('#data-container');
var $deleteProject = $('.delete-project');
$dataContainer.on('click', $deleteProject, _deleteProject);

Sooo....我无法使用 $(this) 获取 ID 如果我单击了按钮。上下文是 #data-container 而不是我单击的实际按钮。我还应该补充一点 那么,我该怎么做呢?这是我的完整代码,以便更好地理解:

var $dataContainer = $('#data-container'); // Container holding dynamic elements
var $deleteProject = $('.delete-project'); // Delete buttons for elements

$dataContainer.on('click', $deleteProject, _deleteProject);

function _deleteProject(){
  var project = $(this).attr('id'); // Doesn't work
  console.log(project);
}

您可以从事件参数中获取 ID。试试这个。该事件应始终包含点击了哪个目标。

function _deleteProject(event){
  var id = event.target.id;
  var project = $(this).attr('id'); // Doesn't work
  console.log(project);
}