Jquery拖放问题
我想删除div容器中的一些元素。我的脚本是这样的:我将元素拖到#deleteArea中,元素就出来了。脚本:
$("#deleteArea").droppable
({
drop: function(event, ui) {
alert('in');
deleteImage(ui.draggable,ui.helper);
},
over: function() {
$(this).css('backgroundColor', '#cedae3');
},
out: function() {
$(this).css('backgroundColor', '#ffffff');
},
});
和
function deleteImage($draggable,$helper)
{
params = 'id=' + $draggable.attr('id');
$.ajax({
url: 'delete.php',
type: 'POST',
data: params,
success: function(msg){
}
});
$helper.effect('transfer', { to: '#deleteArea', className: 'ui-effects-transfer' },500);
$draggable.hide();
}
现在我想通过双击删除元素。我尝试从这个小代码上面的脚本开始:
$('.produse').dblclick(function(event, ui) {
alert('in');
deleteImage(ui.draggable,ui.helper);
});
但我记得“ui未定义”,我不知道该怎么做。请帮忙
答案 0 :(得分:1)
您没有正确地将参数传递给点击处理程序。
在这段代码中:
$('.produse').dblclick(function(event, ui) {
alert('in');
deleteImage(ui.draggable,ui.helper);
});
您尚未正确地向匿名函数声明参数。如果您查看jQuery doc for .dblclick()
,有两种方法可以调用它:
.dblclick(handler(event))
或
.dblclick([eventData,] handler(event))
您没有使用这些。
如果你想将一些数据传递给dlbclick处理程序,它的工作原理如下:
$('.produse').dblclick({uiData: ui}, function(event) {
alert('in');
deleteImage(event.data.uiData.draggable, event.data.uiData.helper);
});
您可以在此处看到它:http://jsfiddle.net/jfriend00/NUU8s/