我們通過從JSON文件中提取數據來創建HTML頁面。這工作正常,我們正在動態創建一個使用jQuery Mobile的信息可摺疊列表。爲什麼我無法訪問HTML div/jQuery對象的屬性?
現在我們試圖獲取每一位數據的偏移屬性,以便我們可以直接從其他頁面鏈接到它。
問題是我們似乎無法掌握偏移值。使用此代碼:
var entry = $("#" + glosID);
console.log(entry);
var offsetJS = entry.offsetTop;
var offsetJQ = entry.offset().top;
console.log("Offset from top(JS): " + offsetJS);
console.log("Offset from top(jQuery): " + offsetJQ);
輸出是
Offset from top(JS): undefined
Offset from top(jQuery): 0
我注意到,檢查控制檯的對象表明,它具有結構:
div.0: listofproperties
所以,我想
現在我得到:
Uncaught TypeError: Object #<HTMLDivElement> has no method 'offset'
最後我嘗試這樣做:
var offsetJS = entry[0].offsetTop;
var offsetJQ = entry[0].draggable;
現在,這是有趣的。我選擇了「可拖動」,因爲它是我發現的第一個簡單的財產。我用很多其他我發現的東西測試了它們,它們都工作。與此代碼我得到:
Offset from top(JS): 0
Offset from top(jQuery): false
我測試許多其它性質的使用[0]通知(例如的namespaceURI),爲我清楚地訪問在陣列中的第一個對象。但嘗試,因爲我可能無法獲得偏移量,也沒有任何其他與偏移相關的屬性(如offsetHeight)。但是,我可以獲得其他數字,如nodeType。
這到底是怎麼回事? jQuery手機搞亂了什麼?
你知道jQuery對象和DOM元素有什麼區別嗎? – epascarello
如果該元素在_collapsible_中並且它是_collapsed_,offset()。top將返回0,因爲它是隱藏的。選中這個[demo](http://jsfiddle.net/Palestinian/tXg7x/)向下滾動並點擊帶紅色邊框的單詞。 – Omar
該元素不在可摺疊狀態,它是您單擊以打開摺疊狀態的可摺疊標題文本。 –