jQuery множественный .load () лишает элементы управления ColdFusion Ajax? - PullRequest
0 голосов
/ 26 ноября 2010

У меня запущена проблема 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 голосов
/ 21 февраля 2013

Это сработало для меня:

$(".myTargetDIV").html('<cfoutput><cfinclude template="myColdFusion.cfm"></cfoutput>');
0 голосов
/ 01 декабря 2010

По моему опыту работы с jQuery, всякий раз, когда вы загружаете новую информацию на страницу, вы обычно теряете элементы управления javascript для новых элементов, если вы не наблюдаете за этими изменениями. В этом случае вы захотите убедиться, что javascript для ajax, созданный CF, включен и запускается при загрузке страницы. С другими страницами jQuery мне просто нужно связать новые элементы. С элементами управления ajax Coldfusion я не уверен, как вам помочь, так как мы отошли от них здесь. Иногда они были слишком хлопотными. Я понимаю, что это, вероятно, не вариант для вас.

Вы можете рассмотреть это http://api.jquery.com/jQuery.getScript/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...