0

在另一个问题“Using Google Map with ColdFusion”中,我遇到了无法使用 CF 显示谷歌地图的问题。经过多次试验,我发现如果您使用 ColdFusion.navigate 将页面从一个 cflayoutarea 指向另一个 cflayoutarea,则目标 cflayoutarea 中的地图将不会显示。(但是,如果您只是运行页面,无论是单独运行还是在目标 cflayoutarea 内时,地图都会显示)

所以我现在的问题是:是否有另一种方法我不需要使用coldfusion.navigate 从一个cflayoutarea 导航到另一个?

4

1 回答 1

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>

您可以通过 jQuery 使用内容 DIV 的 ID 属性来更改其内容:

<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>
于 2009-02-26T14:05:28.557 回答