2013-04-27 58 views
0

爲什麼var test = positions.join("/");返回[對象的對象]/[對象的對象]/[對象的對象]等? 需要更改哪些內容才能正常工作?爲什麼。加入返回的翻譯:

應該返回像0,0/0,360/0660位置。我不知道逗號是否會在那裏。

$(function() { 
    $('.AppList').droppable({ 
     accept: ".App", 
     tolerance: 'fit', 
     drop: function(event, ui) { 
      var apps = $(".App"), 
      positions = []; 

      $.each(apps, function (index, app) { 
       var positionInfo = $(app).position(); 

       positions.push(positionInfo); 
      }); 
      var test = positions.join("/"); 
      console.log(test); 
     } 
    }); 
}); 
+0

函數position()返回什麼?一個對象,對吧? – 2013-04-27 08:35:37

+5

由於$(app).position()返回的對象類似於{top:10,left:10} – Catalin 2013-04-27 08:35:43

+0

沒問題,所以如何解決這個問題? – ChristopherStrydom 2013-04-27 08:37:11

回答

3

如何:

var test = JSON.stringify(positions); 
console.log(test); 

沒有必要去創造自己的序列化格式。

+0

雅,那最好不過了+1 – 2013-04-27 08:46:44

+0

啊這是工作。謝謝:) @roasted謝謝你嘗試 – ChristopherStrydom 2013-04-27 08:50:09

+0

我現在怎麼把它分成數組? – ChristopherStrydom 2013-04-27 08:51:03

1

您正在從函數position()返回對象。試試這個:

$.each(apps, function (index, app) { 
      var pos = $(app).position(), 
       positionInfo = pos.top+","+ pos.left; 

      positions.push(positionInfo); 
     }); 
+0

這現在正在返回[undefined Undefined]? – ChristopherStrydom 2013-04-27 08:39:16

+0

使用的console.log($(APP).POSITION())怎麼看你看的對象,這似乎不是.X&.Y,也許.TOP&。左 – 2013-04-27 08:40:03

+0

還好,現在看起來是這樣的對象{頂部= 60,left = 0} – ChristopherStrydom 2013-04-27 08:41:25

0

Array.join() method返回一個字符串。由於你的數組項是objects你不能指望什麼特別有用 - [object Object]是JavaScript將對象轉換爲字符串時創建的默認值。