我无法弄清楚这一点。
我有一个加载我的main.php的控制器:
<div id="container"></div>
<script>$('#container').load('index.php?path=wizard&wizard_id=<?php echo $_GET['wizard_id']; ?> #wizard');</script>
“index.php?path = wizard&amp; wizard_id = 1”loading:view / module / wizard.php' view / module / wizard.php看起来像这样:
<div id="wizard" data-wizard_id="<?php echo $groups_in_set['wizard_id']; ?>" data-total_sets="<?php echo $groups_in_set['total_sets']; ?>">
<div id="set" name="<?php echo $groups_in_set['wand_set']; ?>">
<?php foreach ($groups_in_set['groups'] as $group){ ?>
<!--Step Text -->
<h1><?php echo $group['group']; ?></h1>
<!--Step Detail -->
<div data-group="<?php echo $group['group']; ?>">
<script>alert("group");</script> // No script tags pass to main.php
<?php foreach($group['wands'] as $wand){ ?>
<span id="prompt_elements_<?php echo $wand->wand_id; ?>"></span>
<script>
// Load Wand
// Script not executing on ajax load
loadPromptElements('<?php echo $wand->prompt_type; ?>', <?php echo $wand->wand_id; ?>);
</script>
<?php } // End Wand Loop ?>
</div> <!-- End Group -->
<?php } // End Group Loop ?>
</div> <!-- End Set -->
</div> <!-- End Wizard -->
从我的评论中可以看出,除了“loadPromptElements”函数之外,所有内容都正确加载。整个脚本标记不会显示在我呈现的HTML中。我无法想出这个,需要一些帮助。谢谢社区!!!
答案 0 :(得分:0)
关于jQuery .load()
处理脚本:
如果使用附加到URL [如#wizard] 的选择器表达式调用.load(),则在更新DOM之前会删除脚本,因此未执行。
$('#container').load('index.php?...stuff... #wizard'); // <--- THAT
所以你有几个选择。在#wizard
调用或中的URL之后找到使用.load()
选择器的另一种方法,您可以将其全部(一个函数)放入单独的JS文件中并加载它与.getScript()
同时进行。您可能必须将其设为PHP文件,以便可以使用foreach()
循环和诸如此类的东西。