单击地图外部的按钮时,为所选图层打开一个jquery ui对话框

时间:2016-09-16 08:21:43

标签: javascript jquery-ui leaflet

我有一个包含多个图层的传单地图。我可以为特定图层绘制折线,删除和编辑它们,然后使用jquery ui对话框将一些信息发送到我的postGis数据库。

绘制和删除我的折线没有问题。 我单击地图外部的按钮,可以继续绘制选定图层或从图层中删除折线。

但现在,如何点击地图外的按钮并打开相对于我正在编辑的图层的对话框?

我已尝试在" oneachfeature"上调用我的保存按钮。我的图层,然后当我选择一个图层并单击我的保存按钮时,它首先打开相对于所选图层的对话框,但之后,它还会打开我的其他图层的对话框。

这里有一些代码可以解释我在做什么:



await




1 个答案:

答案 0 :(得分:0)

我会建议这样的事情,定义对话框,然后在需要保存操作时进行调整。

工作示例:https://jsfiddle.net/Twisty/f1gvo1h6/

<强> HTML

<div>
  <div class="artwork">
  </div>
  <button id="saveBtn">
    Save
  </button>
</div>

<div id="saveDialog" title="Save Layer">
  <p><span class="ui-icon ui-icon-alert" style="float:left; margin:12px 12px 20px 0;"></span>Do you wish to save the changes to this layer?</p>
</div>

<强>的jQuery

$(function() {

  $("#saveDialog").dialog({
    autoOpen: false,
    resizable: false,
    height: "auto",
    width: 400,
    modal: true
  });
  $("#saveBtn").click(function() {
    // Gather the layer that is being edited
    // Create actions and buttons
    $("#saveDialog").dialog("option", "buttons", [{
      text: "Save",
      click: function() {
        // Do stuff for the layer save
        // layer.disableEdit();
        $(this).dialog("close");
      }
    }, {
      text: "Cancel",
      click: function() {
        $(this).dialog("close");
      }
    }]);
    // Open Save Dialog
    $("#saveDialog").dialog("open");
  });
});

其中一些来自Modal Confirmation Example。基本上,我们知道在任何图层上都可以调用保存按钮。我们不需要为每个创建一个唯一的对话框。我们可以创建一个,然后根据需要修改按钮。