相关疑难解决方法(0)

如何从JQuery选择器获取DOM元素

我很难找到从jquery选择器获取实际的DOMElement.示例代码:

<input type="checkbox" id="bob" />
  var checkbox = $("#bob").click(function() { //some code  } )
Run Code Online (Sandbox Code Playgroud)

在另一段代码中,我正在尝试确定复选框的选中值.

  if ( checkbox.eq(0).SomeMethodToGetARealDomElement().checked )
    //do something.
Run Code Online (Sandbox Code Playgroud)

请,我不想这样做:

  if ( checkbox.eq(0).is(":checked"))
    //do something
Run Code Online (Sandbox Code Playgroud)

这让我在复选框周围,但有时我需要真正的DOMElement.

javascript jquery dom

172
推荐指数
3
解决办法
17万
查看次数

未捕获的TypeError:无法设置undefined的属性"position"

我有这个代码给我奇怪的错误信息

Uncaught TypeError: Cannot set property 'position' of undefined
Run Code Online (Sandbox Code Playgroud)

这是一个jQuery插件的内部,用于在弹出窗口中显示谷歌地图.我在其他地方使用代码,它工作正常 - 这里唯一的区别似乎是我现在在弹出窗口中使用它.我错过了范围问题吗?像geocoderParams和latlng这样的所有变量都应该填充.谷歌搜索错误消息没有任何价值.

调用google.maps.Map()时会触发错误消息.

self = $(this)
self.hide()

geocoder = new google.maps.Geocoder
geocoderParams =
  address: self.data('address') || settings.address
  region: settings.region

results = geocoder.geocode geocoderParams, (results, status) ->

if status == google.maps.GeocoderStatus.OK
  latlng = results[0].geometry.location

  mapOptions =
    mapTypeControl: false
    overviewMapControl: false
    zoom: settings.zoomLevel
    center: latlng
    mapTypeId: google.maps.MapTypeId.ROADMAP

  map = new google.maps.Map(self, mapOptions)

self.show()
Run Code Online (Sandbox Code Playgroud)

javascript google-maps google-maps-api-3 coffeescript

37
推荐指数
3
解决办法
5万
查看次数

将Google地图自定义叠加层与Backbone Views混合使用

TL; DR

PinView.prototype = _.extend(PinView.prototype, google.maps.OverlayView.prototype)"适当"的方式拥有其他"类"骨干查看继承?

长读

我们正在使用Backbone重做我们的网站,并正在努力包括一些映射功能.

我有一个Backbone视图,处理将<div>s 放置在浏览器窗口中的特定点上; 这似乎是一个自然的事情,以便谷歌的Map API将它们放置在地理坐标上.

根据Google API,为了生成自定义叠加层,您需要创建一个新对象,并将该对象的原型设置为google.maps.OverlayView的新实例.然后,在该对象之上实现三个函数,以便对象响应:

onAdd

draw

onRemove

哪里onAdd负责生成HTML,然后在地图上应用它.这随后调用draw根据您提供的LatLng对和边界正确定位元素.onRemove当你想要摆脱你的图层时会被调用.

所以我修改了我的View以包含这三个方法(只调用render和unrender并绑定到我的集合).然后让我正在做的"魔术发生":

PinView.prototype = _.extend(PinView.prototype, google.maps.OverlayView.prototype)

这看起来不错吗?我可以发布它所基于的View和Model的代码,但老实说,它们与这个例子无关 - 代码可以工作,我可以div通过Backbone模型,视图和控制器组件生成自定义s没有问题的地图,我猜的是什么(也许这个问题对于programmers.se更合适,所以让我知道,我会移动它).

这似乎是让我的PinView同时成为Backbone View和Google Maps OverlayView的最简单方法,但我对原型继承不是100%感到满意,因为我知道我是在做某些"错误"或在某个地方破坏某些东西.

google-maps-api-3 prototypal-inheritance backbone.js underscore.js

6
推荐指数
1
解决办法
1731
查看次数