Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript jquery排序表上的空列表消息_Javascript_Jquery_Jquery Ui Sortable - Fatal编程技术网

Javascript jquery排序表上的空列表消息

Javascript jquery排序表上的空列表消息,javascript,jquery,jquery-ui-sortable,Javascript,Jquery,Jquery Ui Sortable,我正在使用jquery sortable,当列表容器(ul)被清空或加载为空时,我在修改它时遇到了一些困难。例如,如果您有两个容器: 要从中拖动的集合列表始终包含一些项 加载为空的目标列表(除非正在编辑该列表,并且该列表将包含一些列表项,但可以通过将它们从列表中拖出来清空) 空容器(ul)在装载空容器或编辑时清空时应显示一条消息(即此处无任何内容) 我尝试了几种方法,但都没有用 空容器的示例HTML <ul id="mediaItemsListDest" class="playlist

我正在使用
jquery sortable
,当列表容器(
ul
)被清空或加载为空时,我在修改它时遇到了一些困难。例如,如果您有两个容器:

  • 要从中拖动的集合列表始终包含一些项
  • 加载为空的目标列表(除非正在编辑该列表,并且该列表将包含一些列表项,但可以通过将它们从列表中拖出来清空)
空容器(
ul
)在装载空容器或编辑时清空时应显示一条消息(即此处无任何内容)

我尝试了几种方法,但都没有用

空容器的示例HTML

<ul id="mediaItemsListDest" class="playlist-items connectedSortable">
        <!-- force a message in html -->
    <p>Drag and drop an item from the list</p>
</ul>

它们都不起作用。否则我怎么能劫持这个空的或空的列表呢

这里有一把测试小提琴给你:


提前感谢。

您需要处理每个列表更改错误消息状态,因此假设我们有以下HTML-演示中的示例:

<ol id="mediaItemsListDest" class="simple_with_animation vertical">
  <p>Drag and drop an item from the list</p>
  <li>Item 1</li>
  <li>Item 2</li>
</ol>
在onDrop事件中需要调用此函数:

onDrop: function  ($item, container, _super) {
   // code part removed but you can find in your demo

   handleMessage();
}

我做了一个快速测试,效果很好。我希望这一测试有帮助,如果您需要更多信息,请告诉我。

效果很好!有一个鬼占位符我无法删除或访问。开发控制台显示一个空的UL,但当容器清空时,其中有一些东西,在清空后创建了不必要的空间。但是我我猜这是脚本“钩住”某个目标所必需的,我相信你会的。我希望我至少能让它离开css,这样它就不会改变我的列表。但这与这个问题无关。你的答案很好。谢谢通过修改你的css();使用addClass()和removeClass()解决了这个问题在上面撒上一点flexbox css…就可以吃了!
if( !$("#mediaItemsListDest").has("li").length ) {
       $(this).html("Sorry, this is empty");
}
<ol id="mediaItemsListDest" class="simple_with_animation vertical">
  <p>Drag and drop an item from the list</p>
  <li>Item 1</li>
  <li>Item 2</li>
</ol>
function handleMessage() {
   let liObjects = $('#mediaItemsListDest li');
   let message = $('#mediaItemsListDest p');

   console.log('length', liObjects.length);
   console.log('message', message);

   if (liObjects.length !== 0) {
      message.css('display', 'none');
   } else {
      message.css('display', 'inline');
   }
}

handleMessage();
onDrop: function  ($item, container, _super) {
   // code part removed but you can find in your demo

   handleMessage();
}