JSTree JSON_DATA в IE7 и IE8 - PullRequest
       11

JSTree JSON_DATA в IE7 и IE8

1 голос
/ 01 июня 2011

Возникают некоторые проблемы с получением JSTree для работы с IE7 и 8. Он отлично работает на IE9, FF4 и Chrome.

Он загружает данные через плагин JSON_DATA, поддерживаемый действием контроллера ASP.NET MVC3.

Проблема в том, что данные не загружаются в дерево на IE7-8.Я могу убедиться, что запрашиваемое действие запрашивается, и в функции ошибки не генерируется ошибка или, по крайней мере, она не перехватывается.

    $("#changeGroupTree")
    .bind("select_node.jstree", function(event, data) {
        // `data.rslt.obj` is the jquery extended node that was clicked
        var id = data.rslt.obj.attr("id");
        $("input[name='changeGroup_GroupId']").val(id)
            .siblings("span")
            .addClass("field-validation-valid")
            .removeClass("field-validation-error");

        $.ajax({
            type: "GET",
            url: "/api/group/gettree",
            data: { groupId: id },
            dataType: "JSON",
            success: function(data, status, jqXHR) {
                $("#changeGroup_SelectedGroup").html(data[0]);
            },
            error: function(jqXHR, textStatus, errorThrown) {
                var data = $.parseJSON(jqXHR.responseText);
                $().toastmessage("showErrorToast", data.ErrorMessage);
            }
        }); // end ajax
    }) // end bind
    .bind("loaded.jstree", function(event, data) {

    })
    .jstree({
        core: {
            animation: 200
        },
        plugins: ["themes", "json_data", "ui"],
        themes: {
            theme: "default",
            dots: "true",
            icons: "true"
        },
        ui: {
            select_limit: 1
        },
        json_data: {
            ajax: {
                url: "/api/group/getgroups",
                data: function(node) {
                    return { customerId: CUSTOMER_ID, parentId: (node.attr) ? node.attr("id") : "00000000-0000-0000-0000-000000000000" };
                },
                error: function(jqXHR, textStatus, errorThrown) {
                    alert("JSTree Error when getting Group data");
                }
            }
        }
    });  // end jstree

Вот json, который возвращается с сервера

[{"attr": {"id": "d9cc2cb9-fbc4-4726-a9b1-9eee00f1e2b8"}, "data": "MTM", "state": "closed", "icon": "Group"}]

Я что-то упустил, чтобы привязать данные в старых IE?

Спасибо,

1 Ответ

1 голос
/ 02 июня 2011

Оказывается, у меня был самозакрывающийся тег span в html aka

<span class="field-validation-valid" />

Сделайте это в хорошо сформированную метку aka

И все отлично работает.

Вздох, целый день борюсь с этим

...