在另一个问题“使用带有ColdFusion的谷歌地图”中,我遇到了无法使用CF显示谷歌地图的问题。经过多次实验,我发现如果你使用ColdFusion.navigate指向从一个cflayoutarea到另一个cflayoutarea的页面,目标cflayoutarea中的地图将不会显示。 (但是,如果您只运行页面,无论是单独运行还是在目标cflayoutarea内部运行,地图都会显示)
所以现在我的问题是:是否有另一种方法,我不需要使用coldfusion.navigate从一个cflayoutarea导航到另一个?
答案 0 :(得分:2)
你的英语不是很好,所以我要解释一个对我有意义的问题并回答这个问题......
听起来你有2个CFLayoutArea
,并且你想在其中一个中有一个链接(或按钮等),这将改变另一个的内容。
如果您要取消ColdFusion.navigate
作为选项,那么在我看来,您将不得不尝试其他一些基本相同的选项。我喜欢jQuery。如果你不喜欢jQuery,你可以使用另一个库,或者推出自己的解决方案,但他们都会做同样的工作。
由于此代码:
<cflayout name="foo" type="hbox">
<cflayoutarea name="nav">nav</cflayoutarea>
<cflayoutarea name="content">content</cflayoutarea>
</cflayout>
制作此HTML:
<div id="foo">
<div id="nav" style="overflow:auto;float:left;">
nav
</div>
<div id="content" style="overflow:auto;float:left;">
content
</div>
</div>
您可以使用内容DIV的ID属性和jQuery来更改其内容:
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$("#goLink").click(function(e){
$("#content").load("content.cfm");
e.preventDefault();
});
});
</script>
<cflayout name="foo" type="hbox">
<cflayoutarea name="nav"><a href="#" id="goLink">go</a></cflayoutarea>
<cflayoutarea name="content">content</cflayoutarea>
</cflayout>