显示输入项的 jQuery 对话框

Posted

技术标签:

【中文标题】显示输入项的 jQuery 对话框【英文标题】:jQuery Dialog showing input item 【发布时间】:2016-04-14 08:58:30 【问题描述】:

我有两个盒子,“box1”包含列出的项目(文本),“box2”是空的。目的是用户可以将box1中的项目拖到box2,然后按一个按钮注册打开一个对话框。我得到了那个工作!但问题是我需要对话框来显示已拖入box2的项目。

 $(function() 
    $( "#dialog" ).dialog(
      autoOpen: false,
      draggable: false,
    );


    $( "#register" ).click(function() 
      $( "#dialog" ).dialog( "open" );
    );
  );
 $(function() 

    $( "#box1 li" ).draggable(
      appendTo: "body",
      helper: "clone"
    );
    $( "#box2 ol" ).droppable(
      activeClass: "ui-state-default",
      hoverClass: "ui-state-hover",
      accept: ":not(.ui-sortable-helper)",
      drop: function( event, ui ) 
        $( this ).find( ".respondlist" ).remove();
        $( "<li></li>" ).text( ui.draggable.text() ).appendTo( this );
      
    ).sortable(
      items: "li:not(.respondlist)",
      sort: function() 
        $( this ).removeClass( "ui-state-default" );
      
    );
  );

我目前不知道该怎么做。如果有人可以帮助我,将不胜感激。

编辑:https://jsfiddle.net/Kasper_J/Lwqbbapu/

【问题讨论】:

【参考方案1】:

当您点击注册时。您可以在#box2 ol 中找到所有&lt;li&gt; 元素并将其附加到#dialog。在$( "#dialog" ).dialog( "open" ); 之后执行它,因为当对话框关闭时,它的css 有display:none,因此您可能无法在其上添加任何元素(可能)。

您可以执行以下操作。 (测试

$( "#register" ).click(function() 
  $( "#dialog" ).dialog("open");
  var newcontent = document.createElement('div');
  newcontent.innerhtml = $("#box2 ol").html();
  document.getElementById("dialog").appendChild(newcontent);
);

更新:我更新了解决方案(工作)。 (感谢您的提琴)。

这是工作小提琴:Working Fiddle


【讨论】:

感谢您的回复!但这似乎不起作用,对话框仍然是空的。 你可以试试更新的。你也可以解决你的问题,包括你的html。这样我们就可以更有效地提供帮助。

以上是关于显示输入项的 jQuery 对话框的主要内容,如果未能解决你的问题,请参考以下文章

jQuery---BOM

jQuery 对话框在屏幕上闪烁而不是等待用户输入

在 JQuery UI 对话框中输入键行为

jQuery对话框在屏幕上闪烁,而不是留在用户输入

通过字符串获取对话框项的可能性

神秘的鼠标事件关闭 jQuery UI 对话框