Frage

Ich habe den neuen Autocomplete-Widget in jQuery UI 1.8rc3 Arbeiten groß in Firefox bekomme. Es funktioniert nicht bei allen im Internet Explorer. Kann jemand mir helfen, aus?

HTML:

<input type="text" id="ctrSearch" size="30">
<input type="hidden" id="ctrId">

Javascript:

$("#ctrSearch").autocomplete({
    source: "ctrSearch.do",
    minLength: 3,
    focus: function(event, ui){
        $('#ctrSearch').val(ui.item.ctrLastName + ", " + ui.item.ctrFirstName);
        return false;
    },
    select: function(event, ui){
        $('#ctrId').val(ui.item.ctrId);
        return false;
    }
});

Ergebnis (IE 8):

Die rote Box ist das <ul> Element von jQuery erstellt.

Ich habe auch diesen Fehler:

Line: 116
Error: Invalid argument.

Wenn ich es im IE8 Skript-Debugger öffnen, hebt es f[b]=d auf Linie 116 von jquery.min.js. Beachten Sie, dass ich mit der Version 1.4.2 von jQuery gehostet auf dem Google-Servern ( https://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js ).

Ich habe versucht, einige der Optionen zu entfernen, aber selbst wenn ich .autocomplete() ohne Optionen aufrufen, oder nur mit der Quellenoption, habe ich noch das gleiche Ergebnis.

Wieder einmal ist in Firefox zu arbeiten, aber nicht im Internet Explorer. Irgendwelche Vorschläge?

Danke.

UPDATE: Wie bereits angedeutet, habe ich jquery.js (statt jquery.min.js) und bekam den Fehler in Zeile 4618. Siehe Jitter Antwort unten. Bitte finden Sie unter href="https://stackoverflow.com/questions/2426802/jquery-offset-not-working-in-some-browsers-on-some-computers"> dass wurde vor ein paar Tagen geschrieben.

UPDATE 2: Ich entdeckte, dass jQuery UI zur automatischen Vervollständigung verwendet eine ungültige Eigenschaft this.element.height, wann sollte es die Funktion verwenden this.element.height()

War es hilfreich?

Lösung

Wenn ich dieses Recht die Linie verstehen Sie beziehen sich auf scheint die Linie 4618 in jquery.1.4.2.js in der style Funktion. Welche kann nur bedeuten, dass der Autocompleter Plugin versucht, einen Stil Wert zu setzen, dass IE8 nicht versteht oder nicht erlaubt auf diese Weise zugegriffen / geändert werden.

style[ name ] = value; //style == elem.style from the passed in element

Andere Tipps

Ich habe den exakt gleichen Fehler auf der exakt gleiche Zeile, aber für eine ganz andere Sache. Das heißt, ich mache nichts mit Auto-Vervollständigung zu tun haben; vielmehr Mine tritt auf, weil ich dies in jQuery bin versucht ...

$(this).css('background', 'rgba(64,255,64,.4)');

Welche versucht jQuery ...

zu tun
style [ 'background' ] = 'rgba(64,255,64,.4)';

Und es nicht, natürlich, weil rgba nicht unterstützt CSS-Wert für den Internet Explorer ist. So dass Sie nicht allein auf diesem sind, aber in meinem Fall tat ich es einfach falsch. Die entsprechende jQuery-Syntax ist dies ...

$(this).css({backgroundColor: '#40ff40', opacity: .4});

Hier ist meine Quelle ...

http://www.cjs.me.uk/blog/?p = 238

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top