在动态创建的元素上使用on('click')事件

时间:2018-10-01 16:09:28

标签: javascript jquery

我想在动态创建的元素上使用on()函数,但是每个回调函数都不相同,因此我无法选择类别或其他类别。 这是我的代码:

jsonObj = $.getJSON("https://api.myjson.com/bins/1d7m9k", (jsonFile) => {
  jsonObj = jsonFile;
});

$('document').ready(() => {
  const $infobox = $('.col-md-6.info-box');
  const $listbox = $(".col-md-6.list-box");
  const div = "<div class='overlay'></div>";
  let map = new GMaps({
    div: '#map',
    lat: '42.504154',
    lng: '12.646361',
    zoom: 5
  });
  if (jsonObj.readyState != 4) {
    setTimeout(() => {
      for (let i = 0; i < jsonObj.length; i++) {
        element = jsonObj[i];
        $listbox.html($listbox.html() + "</br><a href='#' id='" + element.Name + "'>" + element.title + "</a>");

        /*$("#"+element.Name).on('click',()=>{
          map.removeMarkers();
          map.removeOverlays();
          marker = map.addMarker(element);      

          map.drawOverlay({
            lat: element.lat,
            lng: element.lng,
            content: div,
            verticalAlign: 'bottom'
          });
        }); */

        $("#" + element.Name).click(() => {
          map.removeMarkers();
          map.removeOverlays();
          marker = map.addMarker(element);

          map.drawOverlay({
            lat: element.lat,
            lng: element.lng,
            content: div,
            verticalAlign: 'bottom'
          });
        });
      }
    }, 500);
  }

如果有人有一个主意,那就太好了。 非常感谢,祝您有美好的一天。 附言Rory McCrossan提出的解决方案对我不起作用,因为每个回调函数必须不同。

0 个答案:

没有答案