2017-03-24 62 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