2017-03-24 92 views
0

我有這樣一行:jQuery的偏移left屬性不工作

$("#"+genId).css({"border":"2px solid black", "background-color":"white", "position":"fixed", "z-index": "10000000000", "top": (pos.top + h + 10)},"left", pos.left + w + 10); 

當我在最後去掉左邊它的工作原理,但是當我添加的左半部分的元素消失。

不知道發生了什麼事:

全功能:

function showPopUp(element){ 

    var pos = element.offset(); 
    var h = element.height(); 
    var w = element.width(); 
    var newDiv = document.createElement('div'); 
    var genId = ("a" + (new Date).getTime() + Math.floor(Math.random() * 20)); 

    newDiv.id = genId; 
    document.getElementsByTagName('body')[0].appendChild(newDiv); 
    $("#"+genId).css({"border":"2px solid black", "background-color":"white", "position":"fixed", "z-index": "10000000000", "top": (pos.top + h + 10), "left": (pos.left + w + 10)}); 
    $("#"+genId).append("<p> Tag:" + element.prop("tagName") + " || Em: "+ getEm(element) + "em || Px: " + getPixel(element) + "</p><p>Font Family: " + getFontFam(element) + "</p>"); 

} 

編輯

代碼

固定錯字從文件複製

... "top": (pos.top + h + 10), "left": (pos.left + w + 10)}); 

回答

0

不知道這是否是最好的修復,但它的工作爲了我。

我用margin-left財產,而不是left財產,現在正在工作。

+0

嗨,你仍然對答案感興趣嗎? – Ionut

2

您使用css()方法錯誤。它看起來不像那樣。 css()方法只需要一個參數(一個string或一個array)。所以這個:

$("#" + genId).css({ 
    "border": "2px solid black", 
    "background-color": "white", 
    "position": "fixed", 
    "z-index": "10000000000", 
    "top": (pos.top + h + 10) 
}, "left", pos.left + w + 10); 

應該是這樣的:

$("#" + genId).css({ 
    "border": "2px solid black", 
    "background-color": "white", 
    "position": "fixed", 
    "z-index": "10000000000", 
    "top": (pos.top + h + 10), 
    "left": (pos.left + w + 10) 
}); 

請閱讀here的文檔,你就明白了。

這就像.css(propertyName)

所以,你可以有這樣的:

.css('display', 'block')

或者這樣:

.css({'display': 'block', 'color': '#f00'})

+0

該代碼給出了相同的結果 –

+0

很抱歉,但我不能在我的筆記本電腦了,如果沒有人回答你的問題,直到我回去我會盡力幫助你的。 – Ionut