Javascript 如何在jquery的drop方法中调用函数?
我在jquery中有一些代码,包含可拖动和可删除的元素 这是我的JSFIDLE链接- 我想优化这段代码,为Javascript 如何在jquery的drop方法中调用函数?,javascript,jquery,performance,jquery-ui,Javascript,Jquery,Performance,Jquery Ui,我在jquery中有一些代码,包含可拖动和可删除的元素 这是我的JSFIDLE链接- 我想优化这段代码,为 drop: function(event, ui) { var self = $(this); self.find(".placeholder").remove(); var productid = ui.draggable.attr("data-id"); if (self.find("[data-id=" + produc
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.");
}
drop:函数(事件、用户界面){
var self=$(这是);
self.find(“.placeholder”).remove();
var productid=ui.draggable.attr(“数据id”);
if(self.find(“[data id=“+productid+”]).length)返回;
$(“”{
“text”:ui.draggable.text(),
“数据id”:产品id
}).附于(本);
$(“#等于”).hide();
//要从其他购物图表中删除项目,请执行以下操作
var cartid=self.closest('.shoppingCart').attr('id');
$(“.shoppingCart:not(#“+cartid+”)[data id=“+productid+”])。remove();
var isAllFilled=true;
$(“.shoppingCart”)。每个(函数(){
if($(this.find('ol.placeholder')).length>0)
{
isAllFilled=false;
返回
}
});
如果(已全部填充)
{
$(“#等于”).show();
$(“#equal”).html(“恭喜!您在正确的位置输入了每个块。”);
}
因此,我必须编写代码,但不能正常工作。元素可以拖动,但不能删除
优化后,JSFIDLE链接将被删除
那么如何解决这个问题呢。
请首先检查两个JSFIDLE链接,以便你们能够理解我面临的问题
请提供帮助。在您的第二个版本中,传递
事件
和ui
参数
function test(event, ui){ ...
因此,您需要在函数中引用elemnt作为this
,调用test
函数,如下所示
drop: function(event, ui) {
test.call(this, event, ui);
}
@hirenpanchal问题出在哪里?它不是
调用.测试(这个,事件,用户界面);
,它的测试.调用(这个,事件,用户界面);
:)