在AJAX加载的元素</script>上运行<script>

时间:2013-04-24 08:55:01

标签: javascript ajax

我有一个页面通过JQUERY.get加载部分内容。

<html>
   <body>
       <div onclick="foo('example.com')">Click here!!!</div>
       <div id="replacePanel"/>
   </body>
</html>

需要加载内容

<div id="replacePanel">
    <div id="moveAccordion" class="grid_12">
        <h3>From</h3>

        <div>
            <p>
                <label class="label">From:</label>

            </p>
        </div>
        <h3>To</h3>
        <div>
            <p style="padding-bottom: 15px;">
                <label class="label">To:</label>
            </p>
        </div>
        <h3>Delta</h3>
        <div>
            <p>
                <label class="label">delta time:</label>
            </p>
        </div>
    </div>
    <script> 
            $('#moveAccordion').accordion();
    </script>
</div>

JQuery AJAX功能:

function foo(url){
    $.get(url, function(response) {
        $('#replacePanel').replaceWith($('#replacePanel',response));
    }
}

它应该加载一个jQuery UI手风琴,但它只加载HTML部分,而不会调用创建UI的<script>

请告诉我如何使用JavaScript运行该脚本? 我认为这可能与一些JavaScript事件有关。

2 个答案:

答案 0 :(得分:2)

我的猜测是你附加了一个通过ajax加载内容的事件监听器?如果该假设是正确的,则应使用on添加事件处理程序。这有效,如果你有jQuery&gt; 1.7 - 如果您的版本较旧,请使用live来添加事件处理程序。

请参阅:http://api.jquery.com/on/

答案 1 :(得分:0)

请勿在回复变量中添加<script>$('#moveAccordion').accordion();</script>,尝试在<script> $('#moveAccordion').accordion();</script>代码

之前转移</body>