找到解决方案!
我找到了,我忽略了我只能获取变量项的 id。所以我提出var item_id = item.attr('id');
这就是我的解决方案。比我想象的要简单得多。谢谢大家的帮助!
好的,所以我在 jQuery 中有多个可拖动元素,它们都是图像,但每个都有自己的 ID。无论如何,我已经设置了一个功能,一旦图像被拖放到 droppable 上就会执行。我希望能够提取图像的 id,以便我可以处理在我的数据库中删除的图像。
function foundationsInSpot(drag_item,spot)
{
var oldSpotItem = $(spot).find('img');
if(oldSpotItem.length>0) {
oldSpotItem.appendTo('#foundationinv').draggable({ revert: 'invalid' });
}
var item = $('<img />');
var item_id = "";
var bid = "<?= $bid ?>";
item.attr('src',drag_item.attr('src')).attr('id',drag_item.attr('id')).attr('class',drag_item.attr('class')).appendTo(spot).draggable({ revert: 'invalid' });
drag_item.remove();
alert('BenID: ' + bid + ' Foundation: ' + item_id);
var dataString = 'item_id='+ item_id + '&bid=' + bid;
$.ajax({
type: "POST",
data: dataString,
url: "http://motb.isgreat.org/objects/pfoundations.php",
});
}
这就是我的代码。我需要找到item_id
. 这是我的猜测var item_id = $('<img />').attr('id');
,但它返回了空白信息。我也尝试过var item_id = ui.draggable.attr("id");
,这只是停止了我的其余功能。有任何想法吗?提前致谢。
顺便说一下,这是我的可拖动项目的样子。
<img src='http://motb.isgreat.org/objects/khhhqw4s.png' class='object foundation' id='khhhqw4s'/>
更新
我移动了var item_id = ui.draggable.attr("id");
上面的 if 语句,现在我得到了undefined
. 所以我不确定从这里去哪里,但我知道我的 AJAX 调用运行正常,因为它正在使用undefined
.
更新 - 再次
所以这就是我如何调用我的函数,如果这让它更容易的话。
$(".foundations").draggable({ revert: 'invalid'}).addTouch;
$('#foundationinv').droppable({accept: '.foundations'});
$("#foundations").droppable({ accept: '.foundations'})
$('#foundations,#foundationinv').bind('drop', function(ev,ui) { foundationsInSpot(ui.draggable,this); });
我以前从来没有做过这样的事情,所以这真的超出了我的范围。如果您想亲自查看该页面,请访问http://motb.isgreat.org/并单击登录按钮,并使用testbot作为用户名和密码。要查看可拖动对象的位置,在左侧有一个大框,其下方有 4 个较小的框,单击单词为基础的小框上方。我正在尝试将那些出现在小框中的对象拖到里面。您可以看到包含我试图传递的信息的警报。随意检查我的源代码是否有任何问题,这些项目是从我的数据库中调用的,因此您的源代码中可能缺少我的 PHP。
我找到了,我忽略了我只能获取变量项的 id。所以我放了 varitem_id = item.attr('id');
这就是我的解决方案。比我想象的要简单得多。谢谢大家的帮助!