@alrdev

В чем может быть проблема при обработке события click ссылки находящейся в ячейке jqGrid?

Есть таблица на основе jqGrid, для одной из ячеек используется custom fromatter:
function employeeLinkFormatter(cellvalue, optios, rowObject) {
        if (cellvalue) {
            
            var name = cellvalue;
            var id = rowObject["ResponsiblePersonId"];
            if (id) {
                var link = '@Html.ActionLink("Name", "EmployeeInfo", "Customers", new { employeeId = "EmployeeId" }, new { @class = "modalpartial" })';
                var result = link.replace("Name", name).replace("EmployeeId", id);
                return result;
            }
            return name;
        }
        return "";
    }


По задумке, при нажатии на ссылку появляется модальное окно ( на основе PartialView) формируемое следующим кодом:
$(".modalpartial").click(function (ev) {
        try {
            ev.preventDefault();
            var url = $(this).attr("href");
            var placeholder = document.getElementById("_modal_placeholder");
            $("<div id=\"modalpartialwindow\" class=\"modal fade \" tabindex=\"-1\"/>").appendTo(placeholder);
            $("<div id=\"modaldialog\" class=\"modal-dialog modal-lg\" />").appendTo("#modalpartialwindow");
            $("<div id=\"modalpartialcontainer\" class=\"modal-content\"/>").appendTo("#modaldialog");
            $.ajaxSetup({ cache: false });
            $.get(url, function (data) {
                $("#modalpartialcontainer").html(data);
                $("#modalpartialwindow").modal("show");
            });
        } catch (e) {
            alert("Ошибка " + e.message + " " + e.description);
        }
        return false;
    });


Если ссылку разместить вне jqGrid, то окно показывается (событие $(".modalpartial").click вызывается), но если ссылка находится в ячейке, происходит просто открытие html (PartialView), без вызова события и его обработки.
Подскажите, где я накосячил?
Я просто довольно далек от Jquery и иже с ним.
  • Вопрос задан
  • 272 просмотра
Решения вопроса 1
Проблема скорее всего в том, что на момент привязки клика элементов с классом modalpartial еще нет на странице.
Попробуйте вместо строки
$(".modalpartial").click(function (ev) {
написать
$(document).on("click", ".modalpartial", function (ev) {
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
18 апр. 2024, в 21:56
2000 руб./за проект
18 апр. 2024, в 21:00
150 руб./за проект