0

我试图在下面的代码中添加一个 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);
    }
  //}
});
4

1 回答 1

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);
    }
  }
});
于 2012-05-21T11:26:10.143 回答