Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/71.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 将AJAX函数列表项从第一个列表拖放到第二个列表_Javascript_Html_Jquery_Ajax_Drag And Drop - Fatal编程技术网

Javascript 将AJAX函数列表项从第一个列表拖放到第二个列表

Javascript 将AJAX函数列表项从第一个列表拖放到第二个列表,javascript,html,jquery,ajax,drag-and-drop,Javascript,Html,Jquery,Ajax,Drag And Drop,我有以下JS代码: $("#list-one, #list-two").sortable({ connectWith: '#list-two', start: function () { sender = $(this); recvok = false; }, over: function () { recvok = ($(this).not(sender).length != 0

我有以下JS代码:

$("#list-one, #list-two").sortable({
   connectWith: '#list-two',
      start: function () {
         sender = $(this);
         recvok = false;
      },
      over: function () {
         recvok = ($(this).not(sender).length != 0);
      },
      stop: function () {
         if (!recvok)
            $(this).sortable('cancel');

         $.ajax({
            url: '/process-list-element',
            type: 'GET',
            data: {'list_element_name': $(this).find('h6').text()},
         });
      }
   }).disableSelection();
拖放工作正常,但在AJAX函数中,“this”关键字指的是整个列表,而不是拖放的列表元素。我需要发送拖放到函数process list element的list元素的名称,而不是整个列表。请注意,在拖放列表元素时,函数进程列表元素会被适当触发。有没有办法从“this”关键字访问列表元素?如果有帮助的话,这个列表只是一个无序的HTML列表,由ul和li标记组成。下面是HTML的一个片段:

<ul id="list-one" class="connectedSortable">
   <li class="inner-pad">
      <h6>Blah blah blah</h6>
      <div class="content-div">
         <span>Blah blah blah</span>
         <p>Blah blah blah</p>
         <i>$32.95</i>
      </div>
   </li>
</ul>
  • 废话废话 废话废话 废话废话

    $32.95
任何帮助都将不胜感激。谢谢。

您可以使用
.find()
获取元素文本,即:
标记。这里,
item
表示当前拖动的元素,因此使用它可以访问其中的元素(子元素)

演示代码
$(“#列表一,#列表二”)。可排序({
连接:“#列出两个”,
开始:函数(){
发送方=$(此);
recvok=false;
},
结束:函数(){
recvok=($(this).not(sender.length!=0);
},
停止:功能(事件、用户界面){
var text=ui.item.find(“h6”).text()//获取h6文本
console.log(文本)
console.log(ui.item.find(“i”).text()//获取i文本
如果(!recvok)
$(this.sortable('cancel');
$.ajax({
url:“/进程列表元素”,
键入:“GET”,
数据:{
“列表元素名称”:文本//传递相同的
},
});
}
}).disableSelection()

  • 废话废话 废话废话 废话废话

    $32.95
  • 废话废话245 废话废话 废话废话

    $32.9

  • 废话废话2554废话 废话废话 废话废话

    $95
您可以使用
.find()
获取元素文本,即:
标记。这里,
item
表示当前拖动的元素,因此使用它可以访问其中的元素(子元素)

演示代码
$(“#列表一,#列表二”)。可排序({
连接:“#列出两个”,
开始:函数(){
发送方=$(此);
recvok=false;
},
结束:函数(){
recvok=($(this).not(sender.length!=0);
},
停止:功能(事件、用户界面){
var text=ui.item.find(“h6”).text()//获取h6文本
console.log(文本)
console.log(ui.item.find(“i”).text()//获取i文本
如果(!recvok)
$(this.sortable('cancel');
$.ajax({
url:“/进程列表元素”,
键入:“GET”,
数据:{
“列表元素名称”:文本//传递相同的
},
});
}
}).disableSelection()

  • 废话废话 废话废话 废话废话

    $32.95
  • 废话废话245 废话废话 废话废话

    $32.9

  • 废话废话2554废话 废话废话 废话废话

    $95

为什么不使用传递给“开始”、“停止”和“结束”事件的默认参数?试试这个,
开始(事件,用户界面)
ui.item
就是您要查找的内容。另外,read ui.item是一个JQuery对象。如何从中提取值?可以显示html吗?我已经在上面显示了一段html。请使用console.log(ui.item)打印对象。您可以在浏览器的开发者工具控制台中找到结果。了解开发人员工具以及如何使用它。它是专门调试代码的非常有用的工具。可以在这里显示console.log的结果吗?为什么不使用传递给“开始”、“停止”和“结束”事件的默认参数?试试这个,
开始(事件,用户界面)
ui.item
就是您要查找的内容。另外,read ui.item是一个JQuery对象。如何从中提取值?可以显示html吗?我已经在上面显示了一段html。请使用console.log(ui.item)打印对象。您可以在浏览器的开发者工具控制台中找到结果。了解开发人员工具以及如何使用它。它是专门调试代码的非常有用的工具。你能在这里显示console.log的结果吗?