您希望它只在第一次显示对话框时进行 ajax 调用,但在随后的单击中,对话框会重新显示而不会重新进行 ajax 调用,对吗?
如果是这种情况,我认为您首先必须摆脱以下代码,因为它会在对话框关闭时删除对话框的元素。没有它,元素将保留,但会被隐藏。
close: function(event, ui) { $(this).remove(); }
您还需要跟踪对话框 div 元素,以便可以重复使用它们。你可以使用这个.data()
方法。
function openDialog($dialogDiv) {
$dialogDiv.dialog({
// options, but not including 'close'
});
}
function loadEmployeesShow(link) {
var $link = $(link),
$dialogDiv = $link.data('dialogDiv');
if (!$dialogDiv) {
console.log('creating new dialog');
$dialogDiv = $('<div>');
$link.data('dialogDiv', $dialogDiv);
$dialogDiv.load($link.attr('href'), function() { openDialog($dialogDiv); });
} else {
console.log('reusing existing dialog');
openDialog($dialogDiv);
}
};
jsfiddle