创建动态按钮以显示对话框

时间:2016-01-16 02:16:36

标签: javascript jquery html jquery-ui dialog

我有一个按钮(创建),当它被点击时,它会创建一个新按钮(更改坐标),该按钮应该能够在单击时打开对话框。

首先我创建了一个对话框窗口,我是通过JavaScript创建的,这就是它在HTML中的样子:

<div id="dialog-form" title="Change coordinates">
  <p class="validateTips">Both fields are required.</p>
  <form>
    <fieldset>
    <label for="lon">Longitude (decimal)</label>
    <input type="text" name="lon" id="lon" value="" class="text ui-widget-content ui-corner-all">
    <label for="lat">Latitude (decimal)</label>
    <input type="text" name="lat" id="lat" value="" class="text ui-widget-content ui-corner-all">

    <input type="submit" tabindex="-1" style="position:absolute; top:-1000px">
    </fieldset>
  </form>
</div>

现在,当点击创建按钮时,我创建了一个能够打开对话框的新按钮:

$( "#create" ).button().on( "click", function()
{
    var btn = document.createElement("BUTTON");
    btn.id = "change_coord";
    var t = document.createTextNode("Change coordinates");
    btn.appendChild(t);
    document.body.appendChild(btn);
});

这就是我的对话框的样子:

dialog = $( "#dialog-form" ).dialog({
          autoOpen: false,
          height: 300,
          width: 350,
          modal: true,
          buttons:{
                "Create an account": addUser,
                Cancel: function(){
                    dialog.dialog( "close" );
                }
          },
          close: function(){
                form[ 0 ].reset();
                allFields.removeClass( "ui-state-error" );
          }
});

奇怪的是,当我创建对话框和按钮以在

中打开它时,它可以正常工作
$(function()
{
....
});

但是,当我动态创建此按钮以打开对话框时,它根本不起作用。
HERE是向我展示问题的小提琴。

1 个答案:

答案 0 :(得分:0)

Per Charlietfl,谁是正确的&#34;生活&#34;已被弃用,但它仍然是问题的常见解决方案。我使用过的另一种方法也是:

[16-Jan-2016 03:06:40 Europe/Berlin] PHP Parse error:

但是,我无法使用$(&#34;#selector&#34;)来使用JQuery来处理动态加载的HTML.on(),我必须使用上面显示的$(document).on语句。

感谢。