Ajax-post生成url-link忘记链接

时间:2014-02-04 11:47:53

标签: javascript jquery ajax

我有这个ajax方法,打开一个带有url-link的对话框。问题是,当我第一次打开它时它工作得很好。但如果我关闭它并再次打开它它不会生成url-link。我仍然知道它使管理控制器中的URL成为问题所在。

$('#generate-report-link').live('click', function () {
    $('#report-link').prop('href', "");
    $.ajax({
        type: 'POST',
        url: '/Administration/Administration/GenerateReportLink',
        success: function (data) {
            $('#ReportLink').removeClass('hidden-div');
            $('#ReportLink').dialog({
                width: 600,
                height: 166,
                resizable: false,
                title: 'Rapportlänk',
                modal: true,
                open: function (event, ui) {
                    if (data.url.length > 0) {
                        $('#report-link-header').html('Använd följande länk för att ge access till rapportvyn:');
                        $('#report-link').prop('href', data.url);
                        $('#report-link').prop('target', '_blank');
                        $('#report-link').html(data.url);
                    } else {
                        $('#report-link-header').html('Det finns ingen rapport användare för er företag, vänligen kontakta system administratören.');
                        $('#report-link').removeAttr('href');
                        $('#report-link').removeAttr('target');
                        $('#report-link').html("");
                    }
                }
            });
        }
    });
});

2 个答案:

答案 0 :(得分:1)

我认为在点击事件之后添加以下行。每次重新创建对话框之前,都必须销毁对话框。

//after this line
$('#generate-report-link').live('click', function () {
// add this
**$('#ReportLink').dialog('destroy').remove();**
// MORE CODE

答案 1 :(得分:0)

可能是缓存造成的吗?尝试将tstamp附加到url,如下所示:

$('#generate-report-link').live('click', function () {
    $('#report-link').prop('href', "");
    $.ajax({
        type: 'POST',
        url: '/Administration/Administration/GenerateReportLink?'+new Date().getTime(),
        success: function (data) {
            $('#ReportLink').removeClass('hidden-div');
            $('#ReportLink').dialog({
                width: 600,
                height: 166,
                resizable: false,
                title: 'Rapportlänk',
                modal: true,
                open: function (event, ui) {
                    if (data.url.length > 0) {
                        $('#report-link-header').html('Använd följande länk för att ge access till rapportvyn:');
                        $('#report-link').prop('href', data.url);
                        $('#report-link').prop('target', '_blank');
                        $('#report-link').html(data.url);
                    } else {
                        $('#report-link-header').html('Det finns ingen rapport användare för er företag, vänligen kontakta system administratören.');
                        $('#report-link').removeAttr('href');
                        $('#report-link').removeAttr('target');
                        $('#report-link').html("");
                    }
                }
            });
        }
    });
});