我正在尝试在以下代码中添加if语句。但由于我是JQuery的新手,我不知道如何把它放在那里。当我取消注释这些行时,我在FireBug上遇到“缺少:属性ID后”错误。我怎样才能做到这一点?提前谢谢。
$( ".droppable" ).droppable({
//if ((this.firstChild) != "[object HTMLImageElement]") {
drop: function( event, ui ) {
var dropped = ui.draggable;
var droppedOn = $(this);
$(dropped).detach().css({top: 0,left: 0}).appendTo(droppedOn);
}
//}
});
答案 0 :(得分:0)
您不能在对象文字中包含代码。
首先创建对象,然后选择添加属性:
var o = {};
if ((this.firstChild) != "[object HTMLImageElement]") {
o.drop = function( event, ui ) {
var dropped = ui.draggable;
var droppedOn = $(this);
$(dropped).detach().css({top: 0,left: 0}).appendTo(droppedOn);
};
}
$( ".droppable" ).droppable(o);
如果你需要在函数内部使用this
,那么整个方法都是错误的。对象总是必须具有属性,而您必须在函数内部进行检查:
$( ".droppable" ).droppable({
drop: function( event, ui ) {
if ((this.firstChild) != "[object HTMLImageElement]") {
var dropped = ui.draggable;
var droppedOn = $(this);
$(dropped).detach().css({top: 0,left: 0}).appendTo(droppedOn);
}
}
});