Javascript 将AJAX函数列表项从第一个列表拖放到第二个列表
我有以下JS代码: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
$("#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的结果吗?