Я надеюсь, что кто-то может помочь, так как я в моем уме и заканчиваю этим. Я пытаюсь это сделать.
- «Перетаскиваемый» предмет помещается в область «Пропускаемый» (это работает)
- Это отправляет идентификатор элемента на мой контроллер, который возвращает тип элемента (это работает)
- Я передаю возвращаемое имя элемента функции, которая открывает модальное изображение и отображает частичное представление в модальном режиме в зависимости от конкретного элемента.
Последний бит, где проблема. Все вышеперечисленные шаги работают нормально, модал выталкивается, а частичное представление передается модалу. Но кнопка закрытия диалогового окна выдает ошибку «.dialog - это не функция», и после закрытия модального окна с помощью «x» в углу последующие попытки открыть модальное окно не сработают, если возникнет аналогичная ошибка.
Вот пример, с которым я работаю, чтобы попытаться заставить это работать.
$(function () {
$('.draggable').draggable({ containment: '#imageboundry', revert: 'valid' });
$('#droppable').droppable({
drop: function (event, ui) {
$.ajax({
type: "POST",
url: '/Home/AddToCart/' + $(ui.draggable).attr("id"),
success: function (data) {
getItemType(data);
}
});
}
});
});
function getItemType(itemName) {
$('#dialogs').dialog({
open: function () {
$(this).load("AdditionalContent", { itemName: itemName }, function () {
alert("This happened");
});
},
modal: true,
resizable: false,
title: itemName,
width: 400,
autoOpen: false,
buttons: {
"Confirm": function () {
$(this).dialog('close');
}
}
});
}
Это мой контроллер, который возвращает частичное представление модальному
public PartialViewResult AdditionalContent(string itemName)
{
return PartialView("_" + itemName + "Attributes");
}
Кнопка закрытия работает, как только я вынимаю бит open: function () { ... }
, и я могу снова и снова открывать модальный режим, но как только я вставляю это обратно, появляется ошибка. Это, очевидно, причина, но я не могу понять, почему.
Заранее спасибо за помощь и извините за очень длинный пост.
UPDATE:
Я попытался инициализировать модальный в document.ready и вызвать его из моей функции "drop" в первой основной функции. Сделав это, я сузил его до этой строки кода, которая загружает частичное представление из моего контроллера. Без этой линии функционал работает. Любые идеи о том, что не так с этим.
$(this).load("AdditionalContent", { itemName: itemName }