Tag: JavaScript

JavaScript中的`new`做什么呢?

我很困惑如何构造函数在Javascrpt中工作; 尽pipe使用了几年的语言(大部分就像是LISP的半必要版本),但我想更多地了解对象应该如何工作。 鉴于此代码: function Foo(x) { return { bar: function() { return x; } }; } 调用myFoo = Foo(5)和myFoo = new Foo(5)什么myFoo = new Foo(5) ? 或者换句话说,Javascript中的构造函数究竟做了什么 ?

+新的date() – 这是好的做法吗?

所以我们今天在我们公司讨论了+new Date()是不是好的做法。 一些人喜欢这种方式通过new Date().getTime() 。 在我看来,这是相当方便的,但另一方面,人们会说很难阅读。 除了明显的“不熟悉一元运算符的人更难理解”之外,还有什么优点或缺点?

在窗口外拖动时如何检测Firefox中的dragleave事件

在窗口外拖动时,Firefox不能正确地触发dragleave事件: https://bugzilla.mozilla.org/show_bug.cgi?id=665704 https://bugzilla.mozilla.org/show_bug.cgi?id=656164 我正在尝试为此开发一个解决方法(我知道这是可能的,因为Gmail正在这样做),但我唯一能想出的东西似乎真的很黑。 有一种方法可以知道在窗外拖动时是否等待dragover事件停止发射(因为dragover在拖放操作过程中不断发射)。 以下是我如何做到这一点: var timeout; function dragleaveFunctionality() { // do stuff } function firefoxTimeoutHack() { clearTimeout(timeout); timeout = setTimeout(dragleaveFunctionality, 200); } $(document).on('dragover', firefoxTimeoutHack); 这个代码本质上是一遍又一遍地创build和清除一个超时。 除非dragover事件停止发射,否则将不会达到200毫秒超时。 虽然这有效,但我不喜欢为此使用超时的想法。 感觉不对 这也意味着在“dropzone”造型消失之前还有一点点滞后。 我的另一个想法是检测鼠标何时离开窗口,但是正常的做法似乎在拖放操作中不起作用。 有没有人有更好的方式做到这一点? 更新: 这里是我使用的代码: <!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <title>Drag and Drop Issue</title> <script src="http://code.jquery.com/jquery.js"></script> </head> <body> Open up the console and […]

dojo中的require()和define()函数与我们什么时候使用的主要区别是什么?

我是学习dojo的新手,并且遇到了require()和define()函数,我无法理解其中的任何一个。 另外,我什么时候可以使用其中之一? 一个小的演示或例子将是有益的。 非常感谢!

有没有一种工具来删除JavaScript中的未使用的方法?

我从第三方收集了一些JavaScript文件,我想删除所有未使用的方法,以便将大小缩小到更合理的级别。 有谁知道一个工具,这对于Javascript? 至less给一个未使用/使用的方法列表,所以我可以做手动修剪? 这将是除了运行像YUI Javascript压缩机工具之外… 否则我的想法是写一个Perl脚本来试图帮助我这样做。

如何通过JavaScript文件将所有JavaScript文件包含在目录中?

我有一堆JavaScript文件,我想包括在页面中,但是我不想一直写下去 <script type="text/javascript" src="js/file.js"></script> 那么有没有办法将所有文件包含在目录中(未知大小)? 我可以做些什么… $.getScript("js/*.js"); …获取“js”目录中的所有JavaScript文件? 我怎样才能做到这一点使用jQuery?

JavaScript推multidimensional array

我有这样的事情: var valueToPush = new Array(); valueToPush["productID"] = productID; valueToPush["itemColorTitle"] = itemColorTitle; valueToPush["itemColorPath"] = itemColorPath; cookie_value_add.push(valueToPush); 结果是[]; 我做错了什么?

从HTMLElement获取google.maps.Map实例

我在页面上有一个现有的地图。 我可以使用沿着document.getElementById()的行select该元素来获取HTMLElement JavaScript对象。 是否有可能获得地图初始化时创build的google.maps.Map的实例,即它是HTMLElement对象的属性还是在其原型中?

jQuery – dynamic创buildbutton并附加事件处理程序

我想dynamic地添加一个button控件到一个表使用jQuery和附加一个点击事件处理程序。 我尝试了以下,没有成功: $("#myButton").click(function () { var test = $('<button>Test</button>').click(function () { alert('hi'); }); $("#nodeAttributeHeader").attr('style', 'display: table-row;'); $("#addNodeTable tr:last").before('<tr><td>' + test.html() + '</td></tr>'); }); 上面的代码成功地添加了一个新的行,但是它不能正确地添加button。 我将如何完成这个使用jQuery?

为什么不Array.push.apply工作?

如此处所述,在javascript a.push.apply(a, b)数组b附加到数组a的快速方法是a.push.apply(a, b) 。 你会注意到对象a被使用了两次。 真的,我们只是想要push函数,而b.push.apply(a, b)完成了完全相同的事情 – apply的第一个参数为应用函数提供了this参数。 我认为直接使用Array对象的方法可能更有意义: Array.push.apply(a, b) 。 但是这不行! 我很好奇,为什么不,以及是否有更好的方法来实现我的目标。 (应用pushfunction,而不需要两次调用特定的数组。