我有这个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("");
}
}
});
}
});
});
答案 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("");
}
}
});
}
});
});