ダイアログが最初に表示されたときにのみ 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