Tag: 关闭

jQuery / javascript事件 – 原型事件处理程序

以下代码不起作用,因为我直觉地期望它: function MyObject(input) { input.change(this._foo); this.X = undefined; } MyObject.prototype._foo = function() { alert(“This code is never called”); // but if it did this.X = true; } var test_input = $(“input#xyz”); // a random, existing input var m = MyObject(test_input); // attach handler (or try to) test_input.change(); // trigger event alert(mX); // undefined 我希望调用_foo() (如果发生this情况, […]

单击标记时,Google Maps v3会打开最后一个infoWindow

我有一个共享的infoWindow用于我的所有标记。 如果我使用jquery的$().each(function(){}) ,它会很好用,但如果我将它更改为JavaScrips的native或while循环,它就不会按预期工作。 每当我点击一个标记时,它将打开最后一个填充标记的infoWindow ,而不是单击标记的infoWindow 。 这有效: $(stores).each(function() { var storeId = $(this).attr(‘storeId’); var address = $(this).attr(‘rawAddress’); var city = $(this).attr(‘city’); var state = $(this).attr(‘state’); var zip = $(this).attr(‘zip’); var lat = $(this).attr(‘lat’); var lng = $(this).attr(‘lng’); var distance = $(this).attr(‘distance’); //create marker var point = new google.maps.LatLng(lat, lng); var marker = new google.maps.Marker({ position: […]

Google Closure活动代表团a’la jQuery live / on

我需要将事件委托给新创建的元素,我需要将处理程序附加到他们的创建事件。 类似于:onCreate 我不希望在创建之后通过寻址将事件绑定到元素:jQuery: $(element).click(function(){}); 我更喜欢类似的东西 $.on(‘document’,’spawn’, ‘.item’, function(e) { if (e.target == this.target) { alert(‘element created: ‘+this); } }); 有没有办法在谷歌关闭? 目标是将事件附加到创建而不是调用函数来附加它。 有人可以建议吗? 我是Closures的新手。 谢谢

在JavaScript中创建命名空间/类类型结构的最优雅方式

我试图找到一种方法,它将为我提供在Namespace / Unit中包装代码的最优雅方式。 例如Google Maps API的var a = Google.Maps.Foo(); ,我认为看起来很干净。 我希望它包含 jQuery No Conflict $符号(如果这是正确的术语)。 到目前为止我很喜欢: // Top level container for sub objects var myApp = myApp || {}; // An object to be held in myApp (function( skillet, $, undefined ) { //Private Property var isHot = true; //Public Property skillet.ingredient = “Bacon Strips”; […]

jQuery点击事件立即触发

我正在开发的Web应用程序中有以下代码: var bgcolor = ”; var row = 0; for(var i = 0; i < result.data.length; i++) { // Set alternating background colors bgcolor = ( i%2 == 0) ? ' style=\'background-color: white;\'': ' style=\'background-color: whitesmoke;\''; $( "div.row" ).append("\ \ “+result.data[i][‘client_name’]+”\ “+result.data[i][‘industry_name’]+”\ Saved: “+result.data[i][‘actual_impact’]+” “+result.data[i][‘impact_type_name’]+” / “+formatCurrency(String(result.data[i][‘actual_savings’]))+”\ “+nl2br( result.data[i][‘problem’] )+”\ \ View details »\ \ […]

关闭时使用’this’

我只是好奇……我怎么在jQuery函数中使用’this’? 例如,如果我有这样的代码…… headEl.find(“form.blog-search input”).focus(function() { $(this).next(“span”).animate({opacity:1}, 200); }) 它工作正常,但是在linting时我得到了“ 关闭时使用’ this ‘的警告”。 这是我应该忽略的东西,还是我可以做的事情不仅要解决警告,还要改进我的代码? 更新: 根据Kevin B在下面的评论,我将代码更改为 headEl.find(“form.blog-search input”).on(‘focus’, function(event) { $(event.target).next(“span”).animate({opacity:1}, 200); }) 哪个按预期工作…现在我只是好奇,这个方法的缺点是什么,什么时候应该用它来支持this ,反之亦然?

为什么这个闭包不能访问’this’关键字? – jQuery

我是闭包的初学者(和Javscript一般),我无法找到关于此代码中发生了什么的令人满意的解释: function myObject(){ this.myHello = “hello”; this.myMethod = do_stuff; } function do_stuff(){ var myThis = this; $.get(‘http://example.com’, function(){ alert(this.myHello); alert(myThis.myHello); }); } var obj = new myObject; obj.myMethod(); 它会提醒’undefined’然后’hello’。 显然这不应该是特定于jQuery的,但这是我能想出的最原始代码的最简单forms。 do_stuff()的闭包可以访问该作用域中的变量,但显然此规则不适用于this关键字。 问题: 当闭包在do_stuff()范围之外传递时(在这种情况下是$.get() )会发生什么? myThis是否包含此副本或对其的引用? 在封闭中使用它通常不是一个好主意吗? 任何回应都非常赞赏。