用户界面问题,无法在移动设备上输入输入字段,因为父容器是可拖动可排序的

Posted

技术标签:

【中文标题】用户界面问题,无法在移动设备上输入输入字段,因为父容器是可拖动可排序的【英文标题】:user interface issue, can't type in input field on mobile because parent container is draggable sortable 【发布时间】:2020-05-23 07:39:49 【问题描述】:

我正在为一个客户端构建一个多张照片上传小部件,让他使用 ajax 上传照片,上传后的组件在网格中列出照片,这些照片基本上是在一个 div 容器 (这是拖动/drop/sortable),其中上传了照片以及一些按钮,如旋转和设置为主,下面有一个输入来设置图片的标题。

我遇到的问题是,在移动设备中我无法使用标题输入文本,因为拖放功能会接管并且不允许我输入内容。

我如何允许输入此输入文本?

我正在使用 jQuery UI 可排序和 jQuery UI 触摸打孔

我的图库代码如下:

<ul id="uploaded_image" class="media-gallery list-inline">
    @if(count($data))
      @foreach($data as $item)
      @php
        $fileName = $directory. "/". $item->foto;
      @endphp
        <li class="file-column" id="$item->item_id">
          <div class="wrapper">
            <div class="foto-container">
              <div onClick="confirmDeletePhoto('$item->item_id')" class="delete-file" data-id="$item->item_id" data-file="$fileName"><i class="fa fa-close"></i></div>
              <div class="dragDrop" title="Arrastre y suelte para ordenar"><i class="fa fa-bars"></i></div>
              <img class="img-responsive" src=" url("images/photo_upload_edit/".session()->get("current_upload_scenario")."/".$directory."/".$item->foto."?time=".time()) " >
              <div class="file-toolbar text-center">
                    <button type="button" class="btn btn-info btn-xs btnRotate" data-foto-id="$item->item_id"><i class="fa fa-rotate-right"></i> rotar</button>
                    <button type="button" class="btn btn-info btn-xs btnSetAsPrincipal" data-foto-id="$item->item_id"><i class="fa @if($item->principal) fa-star @else fa-star-o @endif"></i> principal</button>
              </div>
            </div>
            <div class="title @if($item->title) ok @endif">
              <input data-foto-id="$item->item_id" value="$item->title" type="text" class="form-control foto-title" placeholder="Titulo de la foto">
            </div>
          </div>
        </li>
      @endforeach
    @endif
</ul>

我该如何解决这个问题?

【问题讨论】:

欢迎。请提供一个最小的、可重现的示例:***.com/help/minimal-reproducible-example 不需要,我改变了google关键字并找到了其他来源来解决这个问题,解决方案是在您要使用的元素上设置draggable=false,并允许拖动。在我的情况下,我只是将输入设置为我持有标题的属性可拖动等于 false。就是这样。希望这可以帮助其他人解决问题 【参考方案1】:

我后来在搜索类似我的问题时发现的解决方案很简单,只需将 draggable=false 添加到您要使用的元素中,而不管拖动容器。

在我的例子中,元素是这样的:

<input **draggable=false** data-foto-id="$item->item_id" value="$item->title" type="text" class="form-control foto-title" placeholder="Titulo de la foto">

希望这些帮助:)

【讨论】:

以上是关于用户界面问题,无法在移动设备上输入输入字段,因为父容器是可拖动可排序的的主要内容,如果未能解决你的问题,请参考以下文章

输入搜索字段在响应式网站的移动版本上无法正常工作

如何始终在移动设备和 iPad 上显示数字输入微调器

使用 HTML 输入类型的数字键盘显示

在移动设备上输入时,如何让我的 React TextField 打开数字键盘?

Ajax 在移动和触摸屏设备上的工作很奇怪

Web 和移动设备的用户名文本字段不允许使用空格字符