Frage

Ich fand, dass die Verwendung erklärt jQuery Autocomplete als die erste Funktion in Ihrem Skript andere Funktionen verhindert von gerade ausgeführt wird.

Die zweite und dritte Funktionen unten wird nicht funktionieren:

<script>
$(function() {
    $("#ent_input").autocomplete('get_suggestions', 
        {autoFill: true, scroll: false});
});

    // Freebase Suggest
$(function() {
    $("#ent_input_fb").suggest({type:'/film/director'});
});

$(function() {
    $("#ent_input_fb2").suggest({type:'/film/actor'});
});
</script>

Wenn ich jedoch die automatische Vervollständigung nach unten bewegen, funktioniert das andere Skript, aber die automatische Vervollständigung nicht.

<script>
    // Freebase Suggest
$(function() {
    $("#ent_input_fb").suggest({type:'/film/director'});
});

$(function() {
    $("#ent_input_fb2").suggest({type:'/film/actor'});
});

    $(function() {
    $("#ent_input").autocomplete('get_suggestions', 
        {autoFill: true, scroll: false});
});
</script>

Hat jemand laufen in alle ähnliche Probleme mit jQuery Autocomplete ?

War es hilfreich?

Lösung

jQuery sollten alle Ihre $(function()...) Handler in der Reihenfolge ausgeführt, sie ohne Problem erklärt wurden. Es sieht aus wie Sie Ihre Anrufe autocomplete und suggest sind die Schuldigen.

jQuery ist sehr zurückhaltend auf Event-Handler, und wenn man versucht, etwas ähnlich dem oben mit Klick-Handler bemerken Sie zu tun, dass sie auch in der Reihenfolge ausgeführt werden (und nicht überschreiben sich gegenseitig). Versuchen Sie es:

Angenommen someElement markiert sich wie folgt zusammen:

<span id="someElement" onclick="alert('Me First!');" />

... und das JavaScript

$("#someElement").click
(
  function()
  {
    alert("1");
  }
);

$("#someElement").click
(
  function()
  {
    alert("2");
  }
);

Sie werden sehen, drei Alarmfelder in der folgenden Reihenfolge angezeigt:. "Me First !," "1" und "2"

jQuery geht die extra Meile, um Ihren markiert Onclick-Handler als erste Funktion beibehalten klicken, wenn das Ereignis eintritt. Dies macht es sehr sicher diese Bibliothek mit serverseitigen Technologie zu verwenden, wie ASP.NET, die Onclick-Handler alle über den Ort besprengt.

alle entfernen jQuery-zugewiesen Click-Ereignishandler aus einem Element wie folgt vor:

$("#someElement").unbind("click");

Beachten Sie, dass dies nicht einen Click-Handler zugewiesen eine andere Art und Weise (das heißt, das Onclick-Attribut in Markup) entfernen.

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