私はこれがあなたが探しているとは思わないが、ここで私のハックだ。私自身のプロジェクトの1つで動作し、間違いなく改善することができます。 "#addQuizDialog"はDOMの空のdivです。私はそれを他のコードのどこかで削除するので、私はそれをクローンします。 divを動的に追加することもオプションですが、私はこの時点で私が覚えていない他の問題を作りました。
addQuizDialog: function(){
console.log("_QuizListView addQuizDialog called")
var self = this;
$("#addQuizDialog").clone().load("/templates/addQuizDialog.jade").dialog({
autoOpen: false,
title: "Create New Quiz",
draggable: false,
modal: true,
resizable: false,
buttons: [
{
text: "Save",
click: function() {
// create a Quiz model
var display = $(this).find("form input[name=display]").val();
var description = $(this).find("form input[name=description]").val();
var dialog = this;
// check for existing model by this display name
$.get('/document/quiz/search',{"display":display},function(data, textStatus, jqXHR){
if (data.exists === true){
if ($("#addQuizDialog p.ui-state-error").length > 0){
// do nothing
} else {
$("#addQuizDialog p").append("<br><p class='ui-state-error'>A quiz by that name already exists!</p>")
}
return false;
}
self.collection.create({"display":display,"description":description});
$(dialog).dialog("close");
});
}
},
{
text: "Cancel",
click: function() {
$(this).dialog("close");
}
}
],
beforeClose: function(event, ui) {
console.log("beforeClose called");
$(this).remove();
return true;
},
},self).dialog("open");
},