小编Gri*_*Lab的帖子

获取所有用户定义的窗口属性?

有没有办法在javascript中找出所有用户定义的窗口属性和变量(全局变量)?

我尝试了,console.log(window)但列表是无止境的.

javascript browser properties window-object

36
推荐指数
3
解决办法
8568
查看次数

如何获得相对于父div的鼠标坐标?使用Javascript

我目前有一个div与其中的其他元素结构.

类似于下面的东西;

<div id="container" style="position: relative; width: 500px; height: 500px;">
     <div style="position: absolute; left: 50px; top: 50px;"></div>
     <div style="position: absolute; left: 100px; top: 100px;"></div>
</div>
Run Code Online (Sandbox Code Playgroud)

我试图获取相对于div的div的鼠标位置container.

到目前为止,我有这个;

function onMousemove(event) {

    x = event.offsetX;
    y = event.offsetY;
};

var elem = document.getElementById("container");
elem.addEventListener("mousemove", onMousemove, false);
Run Code Online (Sandbox Code Playgroud)

如果带有id的div container没有子节点,这可以正常工作.当containerdiv有子节点时,它会获得相对于孩子而不是父节点的鼠标坐标.

我的意思是,如果鼠标位于x: 51, y: 51相对于父div 的位置,它实际上将x: 1, y: 1使用上面给出的html相对于子div 返回.

我怎样才能实现我想要的,请不要图书馆.

编辑

tymeJV善意地说明了上面发生的事情.

http://jsfiddle.net/N6PJu/1

javascript events mousemove

19
推荐指数
3
解决办法
2万
查看次数

Javascript在原型中设置值类型的对象属性?

我总是在对象的原型中设置具有值类型的属性,因为这会阻止每次创建对象时都必须初始化它们.

从那以后,我做了一些调试,发现如果原型属性的值会发生变化,那么会为对象分配一个新属性,并保持原型.

var o = function () {

};

o.prototype.x = 0;

o.prototype.setX = function(x) {
    this.x = x;
};

var obj = new o();
obj.setX(1);
console.log(obj);

// o {x: 1, x: 0, setX: function}
Run Code Online (Sandbox Code Playgroud)

所以我的问题是,如果您知道原型属性的值可能会发生变化,那么在原型中设置它并获得它不需要在对象创建时进行初始化是否有任何实际好处?

我的意思是当它改变为另一个值时,必须将新值分配给现有对象,从而失去了首先在原型中设置它的初始好处!此外,它现在意味着您在对象中有一个属性,在原型中有一个属性.

它在谷歌开发者说,这是这样做的方式,但我不太确定.

什么时候应该在原型中设置值类型属性,当你知道值会改变时,是否有任何实际的性能提升?

javascript variables prototype object

10
推荐指数
1
解决办法
4106
查看次数

当for循环使用一个对象数组时,forEach不起作用

我有一个像这样的数组

var updates = [];
Run Code Online (Sandbox Code Playgroud)

然后我像这样将数据添加到数组中

updates["func1"] = function () { x += 5 };
Run Code Online (Sandbox Code Playgroud)

当我用for循环调用函数时,它按预期工作

for(var update in updates) {
     updates[update]();
}
Run Code Online (Sandbox Code Playgroud)

但是,当我使用forEach它不起作用!?

updates.forEach(function (update) {

    update();
});
Run Code Online (Sandbox Code Playgroud)

forEach绝对可以在我的浏览器中使用google chrome,我做错了什么?

javascript arrays foreach for-loop function

9
推荐指数
2
解决办法
2万
查看次数

检查对象是否具有用户定义的原型?

简单地说,我可以检查对象是否具有用户定义的原型?

例;

var A = function() {};

var B = function() {};

B.prototype = {

};

// Pseudocode
A.hasUserPrototype(); // False
B.hasUserPrototype(); // True
Run Code Online (Sandbox Code Playgroud)

这可能吗?

javascript prototype object

7
推荐指数
1
解决办法
5401
查看次数

requestAnimationFrame并知道浏览器何时重新绘制?

有没有办法知道浏览器何时正在运行requestAnimationFrame

例如,当我从正在运行的标签切换标签时requestAnimationFrame,该功能停止执行,当我切换回它继续时,处理这个的最佳方法是什么?

javascript canvas requestanimationframe

0
推荐指数
1
解决办法
4099
查看次数