site - jquery specs



jQuery append non funziona in Internet Explorer (1)

Hai due tag di chiusura senza corrispondenza </div></li> . Correggi HTML e dovrebbe funzionare:

<div class='projectHeadingDiv left'><li><h1>" + item.Project_heading + "</h1><h3><a id='" + item.ID + "' class='projectLink' href='#'>" + item.Title + "</a></h3></div>

Chrome e Firefox sono più indulgenti nei confronti di tali incuranti sviluppatori. Ma IE è più sensibile a questo tipo di errori (che in realtà penso siano buoni).

Ho una funzione jquery che restituisce i dati JSON : questa funzione funziona in Google Chrome, ma non in Internet Explorer (v11).

$(document).ready(function () {

    $.ajax({
        url: "/../Projects/1/_vti_bin/ListData.svc/Prosjectlist?$select=ID,Tittel,Project_typeValue,Project_heading&$filter=(Project_typeValue%20eq%20%27Type1%27)", 
        method: "GET",
        dataType: "JSON",
        headers: { "accept": "application/json; odata=verbose" },
        success: function (data) {
            $('#projectRow').empty();

            $.each(data.d.results, function (index, item) {
                var itemExist = false;
                $.each($('.projectRow').find('h1'), function (index1, item1) {
                    if (item1.innerHTML == item.Project_heading) {
                        itemExist = true;
                        $(item1).parent().append("<h3><a id='" + item.ID + "' class='projectLink' href='#'>" + item.Title + "</a></h3>");

                    }
                });
                if (itemExist == false)
                    $('.projectRow').append("<div class='projectHeadingDiv left'><li><h1>" + item.Project_heading + "</h1><h3><a id='" + item.ID + "' class='projectLink' href='#'>" + item.Title + "</a></h3></div></li></div>");

            });           
        },
        error: function (error) {
            alert(JSON.stringify(error));
        }
    });

Sto usando jQuery 1.5.2 (Sharepoint 2010 diventa sfocato se uso qualcosa di più recente). Ho visto il debugger in IE11 e i dati sono lì, semplicemente non saranno aggiunti al mio div. Sembra che append possa essere il colpevole, perché se sostituisco .append() con .html() posso vedere l'ultimo elemento nel $each-loop . Per esempio:

$(item1).parent().html("<h3><a id='" + item.ID + "' class='projectLink' href='#'>" + item.Title + "</a></h3>");

Qualcuno sa perché .append funziona in Chrome e non in IE? La console non fornisce alcun messaggio di errore e quindi non ha indizi. Tuttavia, se dovessi cambiare "Document Mode" in IE Dev Tools da 8 (predefinito) a 9 o superiore, sembra che funzioni come dovrebbe.

Qualsiasi aiuto è molto apprezzato.





sharepoint