我正在运行它没有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。
关于如何重新构建我的方法的任何建议?
答案 0 :(得分:0)
根据我使用jQuery的经验,每当您向页面加载新信息时,除非您主动关注这些更改,否则通常会丢失新元素的javascript控件。在这种情况下,您需要确保包含CF创建的ajax的javascript并在加载页面时运行。使用其他jQuery页面,我只需要绑定新元素。使用Coldfusion ajax控件我不知道如何帮助你,因为我们已经离开了他们。他们有时太麻烦了。我明白这可能不是你的选择。
答案 1 :(得分:0)
这对我有用:
$(".myTargetDIV").html('<cfoutput><cfinclude template="myColdFusion.cfm"></cfoutput>');