小编Nou*_*oud的帖子

自定义控制Google Maps API v3的最佳实践

我搜索过很多关于为Google Maps Api v3创建自定义控件的内容,我发现其他人将其用作 Google文档.他们创建div并使用JS来设计它,我认为这不是一个好习惯.我认为这违反了关注点的分离设计原则我的意思是,在JS或HTML中编写CSS代码.

除了最佳实践问题,我已尝试从上面的链接中的代码示例,但它不起作用它引发了以下错误:

( **Uncaught TypeError: Cannot read property 'zIndex' of undefined** ) .. 
Run Code Online (Sandbox Code Playgroud)

这是放置[ 缩放 ]按钮的代码.

HTML文件

  <div id="control-div" class="control-div">
  <div id= "control-ui" class="control-ui" title = "Click to set the map to Home">
    <div id="control-text" class="control-text">
      <p> Zoom </p>
    </div>
  </div>
</div>
Run Code Online (Sandbox Code Playgroud)

CSS文件

.control-ui{
  background-color: white;
  border-style: solid;
  border-width: 2px;
  cursor: pointer;
  text-align: center;
  width: 90px;
  height: 30px;
}
.control-text{
  front-family: Arial,sans-serif;
  font-size: 12px;
  padding: 4px 4px;
}
Run Code Online (Sandbox Code Playgroud)

JS文件(谷歌地图初始化程序)

  var controlDiv =$("#control-div");
  var controlUI = …
Run Code Online (Sandbox Code Playgroud)

javascript google-maps custom-controls google-maps-api-3

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

使用RequireJS优化器r.js缩小后,Jquery对象转换为正常变量

我在CoffeeScript中有这个功能

render: -> 
_.each @$elements, ($el) =>
  if $el[0].id is 'tabs-div'
    emptySlate = "<div class='js-empty-slate' style='padding:40px;'><h3>no data available</h3><div>"
    @setEmptyPlacholde($el, emptySlate)
    return 

  @setEmptyPlacholde($el)


setEmptyPlacholde: ($el, emptySlate)->
emptySlateHTML = emptySlate or "<h3 class='js-empty-slate'>no data available</h3>"
if $el.hasClass('mobile-os-con') or 
   $el.hasClass('time-of-visit-con') or 
   $el.hasClass('gender-visit-con') or 
   $el.hasClass('time-redemption-sales-con') or 
   $el.hasClass('gender-redemption-con')

  $el.children().hide()
else
  $el.empty()
$el.append emptySlateHTML 
Run Code Online (Sandbox Code Playgroud)

$ elements是一个jQuery变量,它使用如下数组:

$elements: [
$("#tabs-div")
$("#visits-male")
$("#visits-female")
$("#days-of-visits")
$(".time-of-visit-con")
]
Run Code Online (Sandbox Code Playgroud)

当我使用RequireJS优化器时r.js,它使用Uglify生成的缩小代码..看起来像这样:

render:function(){var e=this;return _.each(this.$elements,function(t){var n;if(t[0].id==="tabs-div"){n="<div class='js-empty-slate' style='padding:40px;'><h3>no data available</h3><div>",e.setEmptyPlacholde(t,n);return}return e.setEmptyPlacholde(t)})}
Run Code Online (Sandbox Code Playgroud)

在之前的缩小代码中,$el变成了t..所以这拒绝$el在生产中执行as jQuery元素. …

jquery coffeescript requirejs-optimizer

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