JQuery实现if语句问题

时间:2012-05-21 11:21:22

标签: jquery

我正在尝试在以下代码中添加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);
    }
  //}
});

1 个答案:

答案 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);
    }
  }
});