Javascript 跌破开关的情况下,谷歌地图元素似乎失败了
我一直在尝试调试它,但没有成功。我有一个倒扣式开关盒,当我观察堆栈时,它似乎能工作,它击中了我设置的所有断点(假设类型是多边形,我在应该出现的所有断点上放置了一个断点)。我打了每一个,但都失败了。所以这是第一个有效的Javascript 跌破开关的情况下,谷歌地图元素似乎失败了,javascript,google-maps,google-maps-api-3,Javascript,Google Maps,Google Maps Api 3,我一直在尝试调试它,但没有成功。我有一个倒扣式开关盒,当我观察堆栈时,它似乎能工作,它击中了我设置的所有断点(假设类型是多边形,我在应该出现的所有断点上放置了一个断点)。我打了每一个,但都失败了。所以这是第一个有效的 function create_map_element3(type,op,map){ var _op={}; defined(map) ?_op.map=map:null; defined(op.clickable)
function create_map_element3(type,op,map){
var _op={};
defined(map) ?_op.map=map:null;
defined(op.clickable) ?_op.clickable=op.clickable:null;
defined(op.visible) ?_op.visible=op.visible:null;
defined(op.zIndex) ?_op.zIndex=op.zIndex:null;
switch(type){
case "polygon" :
defined(op.editable) ?_op.editable=op.editable:null;
defined(op.fillOpacity) ?_op.fillOpacity=op.fillOpacity:null;
return new google.maps.Polygon(_op);
break;
case "rectangle" :
defined(op.editable) ?_op.editable=op.editable:null;
defined(op.fillOpacity) ?_op.fillOpacity=op.fillOpacity:null;
return new google.maps.Rectangle(_op);
break;
case "circle" :
defined(op.editable) ?_op.editable=op.editable:null;
defined(op.fillOpacity) ?_op.fillOpacity=op.fillOpacity:null;
return new google.maps.Circle(_op);
break;
case "polyline" :
defined(op.editable) ?_op.editable=op.editable:null;
defined(op.strokeWeight) ?_op.strokeWeight=op.strokeWeight:null;
return new google.maps.Polyline(_op);
break;
case "marker" :
defined(op.animation) ?_op.animation=op.animation:null;
return new google.maps.Marker(_op);
break;
};
}
行得通。。我可以很好地获得googlemap元素。现在随着更改,当我调试时,我再次命中所有断点_op对象被填充,并填充其属性。。。但没什么
function create_map_element(type,op,map){
var _op={};
defined(map) ?_op.map=map:null;
switch(type){
case "polygon": case "polyline" : case "rectangle" : case "circle" : case "marker" :
defined(op.clickable) ?_op.clickable=op.clickable:null;
defined(op.visible) ?_op.visible=op.visible:null;
defined(op.zIndex) ?_op.zIndex=op.zIndex:null;
case "polygon": case "polyline" : case "rectangle" : case "circle" :
defined(op.strokeColor) ?_op.strokeColor=op.strokeColor:null;
defined(op.strokeOpacity) ?_op.strokeOpacity=op.strokeOpacity:null;
defined(op.strokeWeight) ?_op.strokeWeight=op.strokeWeight:null;
case "polygon": case "rectangle" : case "circle" :
defined(op.fillOpacity) ?_op.fillOpacity=op.fillOpacity:null;
case "polygon": case "polyline" :
defined(op.geodesic) ?_op.geodesic=op.geodesic:null;
case "marker" :
defined(op.animation) ?_op.animation=op.animation:null;
case "polygon" :
return new google.maps.Polygon(_op);
break;
case "rectangle" :
return new google.maps.Rectangle(_op);
break;
case "circle" :
return new google.maps.Circle(_op);
break;
case "polyline" :
return new google.maps.Polyline(_op);
break;
case "marker" :
return new google.maps.Marker(_op);
break;
};
}
但是当我在retrun线上设置断点时,它击中了它,看起来一切正常。。但是没有什么。。有人有主意吗?谢谢你-杰里米
[编辑]
基于,嗯,我不知道是谁删除了他们的anwser,但它在案件失败原因的正确轨道上。。。这里有一个选项,我正试图用与上面相同的想法来做
function create_map_element(type,op,map){
var _op={};
defined(map)?_op.map=map:null;
defined(op.clickable) ?_op.clickable=op.clickable:null;
defined(op.visible) ?_op.visible=op.visible:null;
defined(op.zIndex) ?_op.zIndex=op.zIndex:null;
if( ["polygon","polyline","rectangle","circle"].indexOf(type)!== -1 ){
defined(op.strokeColor) ?_op.strokeColor=op.strokeColor:null;
defined(op.strokeOpacity) ?_op.strokeOpacity=op.strokeOpacity:null;
defined(op.strokeWeight) ?_op.strokeWeight=op.strokeWeight:null;
}
if( ["polygon","rectangle","circle"].indexOf(type)!== -1 ){
defined(op.fillColor) ?_op.fillColor=op.fillColor:null;
defined(op.fillOpacity) ?_op.fillOpacity=op.fillOpacity:null;
}
if( ["polygon","polyline"].indexOf(type)!== -1 ){
defined(op.geodesic) ?_op.geodesic=op.geodesic:null;
}
if(type == "marker"){
defined(op.animation) ?_op.animation=op.animation:null;
defined(op.cursor) ?_op.cursor=op.cursor:null;
defined(op.draggable) ?_op.draggable=op.draggable:null;
defined(op.flat) ?_op.flat=op.flat:null;
defined(op.icon) ?_op.icon=op.icon:null;
defined(op.optimized) ?_op.optimized=op.optimized:null;
defined(op.position) ?_op.position=op.position:null;
defined(op.raiseOnDrag) ?_op.raiseOnDrag=op.raiseOnDrag:null;
defined(op.shadow) ?_op.shadow=op.shadow:null;
defined(op.shape) ?_op.shape=op.shape:null;
defined(op.title) ?_op.title=op.title:null;
}
switch(type){
case "polygon" :
return new google.maps.Polygon(_op);
break;
case "rectangle" :
return new google.maps.Rectangle(_op);
break;
case "circle" :
return new google.maps.Circle(_op);
break;
case "polyline" :
return new google.maps.Polyline(_op);
break;
case "marker" :
return new google.maps.Marker(_op);
break;
};
}
哦,这也不管用,但是。。它正确地命中了所有断点,当我检查它时,它看起来很好。它只是不返回GoogleMap元素。。顶部的代码块(函数create\u map\u element3)同样有效 我不知道为什么会投反对票,但答案似乎是,不,你无法修复它,因为该案例将遍历所有内容,它声称它的案例在其所在的组中是真实的 即: 后来
case "marker" :
即使类型为“多边形”
只需在每个案例下运行函数中的断点,即可显示即使案例已被击中,您也击中了内部。如果您删除了一个fall-thru案例,即:取出案例“标记”:然后,正如预期的那样,它再次经过类型为多边形,因此案例为假
奇怪,但事实就是这样。更好的解释是受欢迎的,这是基于Molle博士指出的事件。好吧,在堆栈中说它确实发生了,但什么也没有发生,谷歌似乎没有得到它。就像中间有一些乙醚,它会消失在其中。我检查了返回上的断点,并且_op按预期填充,看起来像是新的google.maps.Polygon(_op);开火吧。。。不是百分之百的赞同这个atmWell,这真的比我最近的建议^^^两张反对票更具可读性@莫勒医生,你是在开玩笑吧。。对不起,我说不出来。。我想是的,因为你以前是根据原稿编辑的,编辑也没什么不同,这是我这次粘贴的全部内容。
case "marker" :