我很难找到从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.
我有这个代码给我奇怪的错误信息
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) 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