我一直试图调试这个没有运气。我有一个掉落的开关盒似乎工作,因为我看着堆栈,它击中我设置的所有断点(假装该类型是多边形,我把所有应该出现的断点放在上面)。我点击了其中的每一个,但它失败了。所以......这是第一个有效的。
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;
};
}
有效..我得到谷歌地图元素就好了。现在随着变化,再次调试时我点击了所有断点_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;
};
}
但是当我在后退线上设置断点时它会击中它并且所有看起来都正确..但是......没有......任何人有想法?谢谢 - 杰里米
[编辑] 基于,嗯,我不知道是谁删除了他们的anwser,但它是在正确的轨道上的案件swtich失败...这是一个选项,我试图用与上述相同的想法。
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;
};
}
现在可能这不起作用但是它正确地击中了所有断点,当我检查它时,它似乎很好。它只是不返回谷歌地图元素..顶部代码块(函数create_map_element3)再次工作..
答案 0 :(得分:0)
不知道为什么下来投票,但似乎答案是,不,你无法解决它,因为案件将通过它迭代一切断言它的情况是来自它所在的小组。
IE:
case "polygon": case "polyline" : case "rectangle" : case "circle" : case "marker" :
后来的
case "marker" :
即使 类型 “多边形”
,也为真在每个案例下的函数中简单地运行断点表明,即使案件已经被击中,你也会进入内部。如果您删除其中一个坠落案件IE:将案例“标记”:取出然后按预期再过去 类型 是“polygon”所以案件是假的。
奇怪但是它就是这样。欢迎更好的解释,这是基于Molle博士指出的事件。