0

大家好,我有一个拖放功能,在拖放时我调用了一个用于数据绑定的函数

   function droppable(selector)
   {
      $("#dock").droppable({
         drop: function(event, ui) {
              var container=this; 
          GetAppender(ui.draggable,container);
           AppendData();
         }
        });
    }

    GetAppender(obj,container)
    {
       var Appender=""; 
       var ID= $(obj).attr('id');   
            switch(ID){
            case '1':
            $(container).append('<div id="images"></div>');
            break;
           case '2':
            $(container).append('<div id="tabs"></div>');
            } 
          //there may be several cases not only these two    

    }

    function AppendData()
    {
      if($('#images').length){ loadimages();}
      if($('#tabs').length){ loadimages();}
      //there are several funcitons to be loaded
    }

以上是我在这里使用的拖放功能,我担心的是,当我拖放和图像时,它会在 switch case 中转到案例 1 并将该 div 附加到拖放区域.. 然后在我的拖放功能中,我有 AppendData( ) 函数,我在其中检查元素长度是否存在具有图像 id 的 div 我正在执行 loadimages 函数

在此之后,如果首先我删除图像并在我的附加数据中,因为图像 div 的长度存在,则执行此方法 if($('#images').length){ loadimages();}

当我现在放下另一个选项卡时,问题开始了,已经有一个带有图像长度的 div,所以当我放下另一个时,两个条件的长度都满足并且我的函数 AppendData() 中的两个方法都被执行......任何人都可以帮我解决请问这个问题。。

4

1 回答 1

0

我不确定你的问题,因为我的提议是如此基本......

也许只是使用 else 语句:

function AppendData()
{
  if($('#images').length){ loadimages();}
  else if($('#tabs').length){ loadimages();}
  //there are several funcitons to be loaded
}

或更好:

function AppendData()
    {
      if($('#images').length || $('#tabs').length){ loadimages();}
    }
于 2013-04-13T11:09:02.997 回答