jQuery多个.load()剥离出ColdFusion Ajax控件?

时间:2010-11-26 07:58:12

标签: jquery coldfusion

我正在运行它没有jquery / coldfusion问题,由以下文件演示:

cflayout.cfm:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
</head>
<cflayout name="tabtest" type="tab">
  <cflayoutarea name="tab1" title="tab1" >
          <span>This is tab 1</span>
        </cflayoutarea>
        <cflayoutarea name="tab2" title="tab2" >
          <span>This is tab 2</span>
        </cflayoutarea>
</cflayout>
</html>

cfcontent.cfm:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<cfajaximport tags="cfform,cflayout-tab">
<html xmlns="http://www.w3.org/1999/xhtml">
<!--commenting out the jquery loader is for when loading via cftest.html
    When run on its own, uncomments it-->
<!--<script type="text/javascript" src="http://code.jquery.com/jquery-latest.js"></script>-->
<script type="text/javascript">
  $(document).ready(function(){
          $("#fcontent").load("cflayout.cfm");
         }); 
</script>
fcontent:
<div id="fcontent">
</div> 
</html>

cftest.html:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>CFLayout Test</title>
<script type="text/javascript" src="http://code.jquery.com/jquery-latest.js"></script>
<script type="text/javascript">
$(document).ready(function(){
      $("#fdiv").load("cfcontent.cfm");
     });
</script>
</head>

<body>
 <div id="fdiv">
    </div>
</body>
</html>

在现实生活中,cfcontent.cfm文件充当分类页面,将流程重定向到其他页面。

现在cflayout.cfm本身运行正常,cfcontent.cfm也是如此。但是尝试加载cftest.html并且选项卡控件消失了,好像通过多次使用jquery .load()已经“剥离”了控件。

之前有没有遇到过这个?这是一个已知的问题?由于在这种情况下实际的.html是继承的,我不能用.cfm文件替换它,而是使用cfinclude。

关于如何重新构建我的方法的任何建议?

2 个答案:

答案 0 :(得分:0)

根据我使用jQuery的经验,每当您向页面加载新信息时,除非您主动关注这些更改,否则通常会丢失新元素的javascript控件。在这种情况下,您需要确保包含CF创建的ajax的javascript并在加载页面时运行。使用其他jQuery页面,我只需要绑定新元素。使用Coldfusion ajax控件我不知道如何帮助你,因为我们已经离开了他们。他们有时太麻烦了。我明白这可能不是你的选择。

您可以考虑这个http://api.jquery.com/jQuery.getScript/

答案 1 :(得分:0)

这对我有用:

$(".myTargetDIV").html('<cfoutput><cfinclude template="myColdFusion.cfm"></cfoutput>');