我的Javascript代码有问题,不知道它为什么不运行. 这是我的计时器:var time = 0; startTimer();function startTimer(){setInterval(function(){time=time+1;},10); }这段代码可行(我在点击按钮时运行timeoutTester(),然后它会发出警报并显示时差):function timeoutTester(){var snap_time1 = time;setTimeout(function(){var snap_time2 = time;var diff = snap_time2-snap_time1;alert(diff); //works: ~100 everyti...
javaScript中的匿名函数和闭包(第2篇)<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>javaScript中的匿名函数和闭包(第2篇)</title> <script type="text/javascript">/*作用域链的机制导致一个问题,在循环里的匿名函数取得的任何变量都是最后一个值*///循环里的匿名函数的取值问题function f1(){var arr = [];//循环里包含匿名函数for (var index = 0; index < 5; index++) {arr[index] = function (){ //arr[0]=0...
我试图将一些简单的逻辑包装到javascript / jquery闭包中以将表单绑定到jQuery validate.普通代码看起来像这样……// attach the jquery unobtrusive validator $.validator.unobtrusive.parse("#formName");// bind the submit handler to unobtrusive validation. $("#formName").data("validator").settings.submitHandler = function() {viewModel.Save( $("#formName" ) ); };工作奇妙.我只是想把它包起来,让它变得更干净.所以...
请考虑以下示例:var features = [];$.getJSON(annotations_url, function(data) { $.each(data, function(key, val) {features.push(wkt_parser.read(val.annotation.wkt_data));// at this point, "features" contains objects}); });annotationLayer.addFeatures(features); // here, it is empty again在这里,我希望功能不断增长.但是,在最后一行中,功能再次为空. 为什么这样,我如何正确地将值推送到$.each(或者更确切地说是内...
我正在尝试在循环中绑定事件处理程序,例如:var tabs = ['one', 'two', 'three', 'four']for(var i = 0; i < tabs.length; i++) {alert(tabs[i]);var id = i;$('#' + tabs[i]).bind('click', function() {loadTabs(id, tabs);});}只保留最后一个绑定(值’四’). 我正在尝试整合当前可行的代码:$('#one').click(function() {loadTabs(0, tabs);});$('#two').click(function() {loadTabs(1, tabs);});$('#three').click(function() ...
我想在用户点击一个对象时用JSON更新一些数据.我想出的是以下双重关闭.var buildGetJSON = function(m,t,p,u) { return function () {var buildUpdateParticipants = function(m,t,p) {return function(data) { updateParticipants(m,t,data,p); };};$.getJSON(u, buildUpdateParticipants(m,t,p));}; }; marker.on("click", buildGetJSON(marker, title, popmsg, url));它工作,但让我想知道是否有一个更简洁的方法来为这两个函数...
我写了一些javascript,我将封装在一个闭包中,所以我可以在其他地方使用它.我想这样做类似于jQuery的方式.我希望能够将id传递给我的闭包并在其上调用一些函数,同时设置一些选项.与此类似:<script type="text/javascript">_snr("#canvas").draw({imageSrc : someImage.png}); </script>我已经阅读了很多关于如何使用闭包来做这个的不同帖子,但我仍在努力解决这个问题.这是我离开的地方:_snr = {}; (function (_snr) {function merg...
我有一个对象列表,每个对象都有一个.bullet,它是一个SPAN.我想将跨度上的单击绑定到处理程序,而不是使用jQuery对跨度执行某个操作.我看到一些我不理解的行为,所以我希望有人可以解释发生了什么.基本上,这个第一个代码示例有效:for (var i = 0 ; i< length ; i++) {(function(){dataNode = dataNodeList[i];var handler = function(e) {e.data.node.bullet.firstChild.nodeValue = "- ";};$(dataNode.bullet).on("click",{node:dat...
所以似乎Javascript中没有函数静态变量.我试图在函数内增加一个变量,但我不想这样做:function countMyself() {if ( typeof countMyself.counter == 'undefined' ) {// It has not... perform the initilizationcountMyself.counter = 0;} }我想用闭包来做,但我很难理解这些. 有人在另一个问题中提出这个建议:var uniqueID = (function() {var id = 0;return function() { return id++; }; })();但是当我提醒uniqueID时它所做的就...
在for循环中,数组长度为3,我本来是想对每个循环的元素绑定一个点击事件的,结果点击后控制台输出全部为1。 1 for (var i = 0; i < data.data.length; i++) {2 $(.lands).append(3 <button type="button" class="land land + `${i % 3 + 1}` + "> 4 <div class="soil"> 5 <!-- 成长中的树 --> 6 <div class="tree-wrap"> 7 <img src="../../images/...
这是我的代码示例:var bar = function() {this.baz = function() {this.input = $('.input');this.input.bind("keydown keyup focus blur change", this.foo);}this.foo = function(event){console.log(this);}}显然,单击我的输入可以在控制台中输入输入.我怎么能得到这样的酒吧呢?解决方法:这是因为当您bind事件时,使用触发事件的DOM元素的上下文调用事件处理函数,this关键字表示DOM元素. 要获得“bar”,您应该存储对外部闭包的...
在过去的几天里,我一直在开发类似于Underscore.js和Jquery的JavaScript库.在这两个库中,它们使用一个可以接受参数的对象,但也可以使用它调用的方法:$(“param”).method();或_(“param”).method(); 我一直在阅读这两个库的源代码,试图了解他们是如何实现这样的事情,但一直无法弄明白.我不知道这种类型的封闭的名称,所以我一直无法搜索它. 任何帮助将不胜感激,我只是想弄清楚如何将这种类型的对象实现到我的库中.解决方法:您只需创...
我有一个数据网页,里面可能有几千个TD.一些TD将需要使用TD的内容或部分内容的绑定onclick事件. 我正在使用jQuery添加onclick闭包,如下所示:$(".date").click(function() {var d = this.html();doSomething(this, d, otherparams); }这有效吗?似乎我的页面将包含几百个或几千个几乎相同的闭包.将doSomething调用放在其他地方会不会更好.解决方法:事实上,这是非常低效的.甚至更多,因为您可以使用事件委派轻松解决它.这样做,将只使用...
看代码<script type = 'text/javascript'> function a() {; } a.prototype.hello = function() {alert('hello'); } (function(){var b = 8;} ()); </script>?我不是在创建一个对象而不是调用hello().但是我正在调用hello(). 当我删除闭包时,不会自动调用该函数.即.对于<script type = 'text/javascript'> function a() {; } a.prototype.hello = function() {alert('hello'); } </script>这种奇怪行为的原因是什么? http://jsfidd...
我在我的一个JS文件中有以下代码.// test/lib/UserHelper.js'use strict'; var Firebase = require('firebase');exports.createUser = function (email, password) {browser.executeAsyncScript(function (done) {var $firebaseSimpleLogin = angular.inject(['ng', 'firebase']).get('$firebaseSimpleLoging');var firebaseRef = new Firebase('https://urltoapplication.firebaseio.com');var auth = $firebaseSimpleLogin(fireb...