无法在数组中循环 jQuery 对话框

Cannot loop jQuery dialogbox in array

我在使用索引文件中的以下 div ID 代码在特定数组中设置 jQuery 对话框时遇到问题:

<div id="dialog"></div>

现在使用以下代码从子文件夹的 javascript 文件中的数组生成对话框:

"pins": [{
    "name": "A",
    "status": "Lorem Ipsum",
    "src": "http://test/images/pins/up.png"
  },
  {
    "name": "B",
    "status": "Lorem Ipsum",
    "src": "http://test/images/pins/up.png"
  },
  {
    "name": "C",
    "status": "Lorem Ipsum",
    "src": "http://test/images/pins/down.png"
  }
];


var pins = "<div id=dialog ></div>";
$(function() {
  $("#dialog").dialog({
    autoOpen: false,
    show: {
      effect: "blind",
      duration: 1000
    },
    hide: {
      effect: "explode",
      duration: 1000
    }
  });

  $("src").on("click", function() {
    $("#dialog").dialog("open");
  });
});

我想在 image-pin url 上使用 onclick 函数初始化 3 个对话框,加载 name-value 作为框的标题,加载 status-value 作为文本在框内。

我已经尝试了一百种方法都没有成功。

逻辑是,为数组中的每一项生成img,并在其上绑定click事件。当用户单击它时,您会将 #dialog 中的 img 的 src 替换为单击图像的 src。最后,打开对话框。

如果我没理解错的话,应该是这样的:

var pins = [{
    "name": "A",
    "status": "Lorem Ipsum",
    "src": "https://images.pexels.com/photos/633276/pexels-photo-633276.jpeg?h=350&dpr=2&auto=compress&cs=tinysrgb"
  },
  {
    "name": "B",
    "status": "Lorem Ipsum",
    "src": "https://images.pexels.com/photos/633501/pexels-photo-633501.jpeg?h=350&dpr=2&auto=compress&cs=tinysrgb"
  },
  {
    "name": "C",
    "status": "Lorem Ipsum",
    "src": "https://images.pexels.com/photos/633548/pexels-photo-633548.jpeg?h=350&dpr=2&auto=compress&cs=tinysrgb"
  }
];

$.each(pins, function(i, pin) {
  $('body').append('<img src="' + pin.src + '" class="src" />');
});

$(function() {
  var dialog = $("#dialog").dialog({
    autoOpen: false,
    show: {
      effect: "blind",
      duration: 1000
    },
    hide: {
      effect: "explode",
      duration: 1000
    }
  });

  $("img").on("click", function() {
    dialog.find('img').attr('src', $(this).attr('src'));
    dialog.dialog("open");
  });
});
.src {
  width: 50px;
  height: 50px;
  border: 1px solid;
  margin: 10px;
}

#dialog img {
  max-width: 100%;
}
<link href="https://code.jquery.com/ui/1.12.1/themes/smoothness/jquery-ui.css" rel="stylesheet" type="text/css" />
<script src="https://code.jquery.com/jquery-3.1.0.js"></script>
<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>

<div id="dialog">
  <img />
</div>