jQuery Ajax - 包含脚本,即使页面为空

时间:2013-08-23 09:54:31

标签: javascript jquery html ajax

我正在使用jQuery ajax来呈现一个也包含javascript函数的HTML页面。 我的代码是:

function ChartBook() {

        $.ajax({
            url: '/Charts/ChartBook',
            dataType: 'html',
            id: 1,
            traditional: true,
            type: 'GET',
            success: function (content) {
                $(document.body).empty();
                $(document.body).html(content);
            },
            error: function (XMLHttpRequest, textStatus, errorThrown) {
                alert('An unexpected error occured.');
            }
        });            
    }

Chartbook页面包含一个函数“GetChartData()”。

它运行正常,但是当我以相同的方式调用另一个页面时,Chartbook页面现在不在正文中,但我仍然可以从函数“GetChartData”获取警报消息。

当我使用$(document.body).empty()从html正文中删除页面时,脚本如何仍然存在?

修改

另一个问题是,如果我回想起“Chartbook”页面并返回上一页,则警告消息来自“GetChartData()”函数两次。每次加载Chartbook页面并返回上一页时,警报消息的数量都会增加。

2 个答案:

答案 0 :(得分:0)

脚本通常位于body部分的header之上。因此,$(document.body).empty();不会删除 ,您也可以将其写为$('body').empty();

答案 1 :(得分:0)

如果删除所有仍在DOM中的html检查this

,则无关紧要