我在jquery中有一些带有可拖动和可拖动元素的代码。
以下是jsfiddle的链接 - http://jsfiddle.net/hirenwebdp/Mf6zJ/333/
我希望通过为
创建一个函数来优化此代码drop: function(event, ui) {
var self = $(this);
self.find(".placeholder").remove();
var productid = ui.draggable.attr("data-id");
if (self.find("[data-id=" + productid + "]").length) return;
$("<li></li>", {
"text": ui.draggable.text(),
"data-id": productid
}).appendTo(this);
$("#equal").hide();
// To remove item from other shopping chart do this
var cartid = self.closest('.shoppingCart').attr('id');
$(".shoppingCart:not(#"+cartid+") [data-id="+productid+"]").remove();
var isAllFilled = true;
$(".shoppingCart").each(function(){
if($(this).find('ol .placeholder').length > 0)
{
isAllFilled = false;
return
}
});
if(isAllFilled)
{
$("#equal").show();
$("#equal").html("Congratulation! You have entered each block in correct place.");
}
所以我制作了代码但没有正常工作。元素被拖动但不可丢弃。
优化后,jsfiddle链接为http://jsfiddle.net/Mf6zJ/486/
那么如何解决这个问题。 请先检查两个jsfiddle链接,这样你们就可以了解我面临的问题。
请帮助。
答案 0 :(得分:2)
在您的第二个版本中传递event
和ui
参数
function test(event, ui){ ...
因此你需要在函数内部引用elemnt作为this
调用test
函数,如下所示
drop: function(event, ui) {
test.call(this, event, ui);
}
<强> DEMO 强>