我有一个变焦控制GeoExt地图面板的事件。当我的地图上的图层“超出范围”,即他们的setVisibility
设置为false时,我真的想禁用树面板中的一些节点。我有我的zoomend事件工作,我也有一个checkchange事件的工作,但如果用户按下zoombar多个级别,另一个问题是checkchange事件被评估一次以上,即使以后zoomend事件结束checkchange仍每次用户仅点击节点的复选框就会被触发。我真的需要一种方法来控制这个checkchange事件只运行一次,并从如果用户不使用zoombar射击阻止它......火后,才另一个事件已经被解雇
map.events.on({ "zoomend": function (e) {
layerTree.on("checkchange", function (node, checked) {
alert(node.text + "Inside event");
if(checked == false)
node.disable();
else if(checked == true)
node.enable();
});
if (this.getZoom() > 7) {
tib_villages.setVisibility(true);
tib_lakes.setVisibility(true);
tib_townships.setVisibility(true);
}
else {
tib_villages.setVisibility(false);
tib_lakes.setVisibility(false);
tib_townships.setVisibility(false);
if (this.getZoom() > 5) {
infrastructure.setVisibility(true);
geography.setVisibility(true);
geography2.setVisibility(true);
tib_countys.setVisibility(true);
}
else{
infrastructure.setVisibility(false);
geography.setVisibility(false);
geography2.setVisibility(false);
tib_countys.setVisibility(false);
}
}//end else
}//end function (e)
}); //end map.events.on
感谢您所有的时间和反馈:)
elshae
如果节点没有与图层相关的id,两者之间的联系是什么?它们是在图层显示还是另一个属性匹配时选择的?你如何识别要禁用的节点(在什么属性上)? – SW4 2010-10-27 14:20:10
那么我的节点的文字就等于我的图层的显示文字。我多想了一会儿,想着也许有办法解决某种事件,但我还没有能够解决这个问题。下面是一个尝试: 'layerRoot.on( “checkchange” 功能(节点){ \t \t \t \t \t \t \t \t \t \t警报(node.text + “内部事件”); \t \t \t \t \t \t \t \t \t \t node.disable(); \t \t \t \t \t \t \t \t \t}); \t \t \t \t \t \t \t \t \t tib_villages.setVisibility(假); \t \t \t \t \t tib_lakes.setVisibility(假); \t \t \t \t \t tib_townships.setVisibility(假);' – elshae 2010-10-27 16:13:50
基本上我想某种方式使得当层通过'setVisibility(假)'关断时,节点被停用 – elshae 2010-10-27 16:18:45