2016-08-14 3 views
1

laden Ich habe mehrere Beispiele für die folgenden. Ein Link wie dies ohne wirkliche href:Verhindern, dass Turbolinks 5 auf bestimmte <a></a>

<a href="#" id="add-item"> 
    <i class="fa fa-plus"></i> 
</a> 

Und einige JS, die etwas Magie tut:

id = $('#watch-path-group').children().length + 1 
$('#watch-path-group').append '<input style="margin-top: 4px;" id=wp_"' + id + '" name=wp_"' + id + '" type="text" class="form-control" placeholder="New path...">' 

Nach dem Upgrade 5 das Verhalten turbolinks hat sich geändert. Wenn ich auf den Link turbolinks klicke und die Seite neu lade und in diesem Fall das neu hinzugefügte Element verschwindet ...

Ich verstehe, dass dies wahrscheinlich mehr oder weniger was turbolinks tut. Genommen von github:

Turbolinks fängt alle Klicken auf Verbindungen zu der gleichen Domäne ab. Wenn Sie auf einen geeigneten Link klicken, verhindert Turbolinks, dass der Browser sie verfolgt. Stattdessen ändert Turbolinks die URL des Browsers mithilfe der History-API, fordert die neue Seite mithilfe von XMLHttpRequest an und rendert anschließend die HTML-Antwort.

Aber wie beende ich, was ich versuche zu tun. Sollte ich Link-Tags wie beschrieben nicht mehr verwenden?

Dank

+0

klar zu sein: was Sie versuchen zu Do läuft das 2. Stück von Js Code nach Turbolinks tut sein Ding? – yezzz

+0

@yezzz Nein ... Nun, denke ich nicht. Die Seite lädt, der Benutzer klickt auf den Link und die js läuft, das neue Element sollte hinzugefügt werden. Das ist, was ich will. Aber wenn der Link angeklickt wird, wird das Element hinzugefügt und das ist, wenn Turbolinks die Seite neu lädt ... – martin

+0

Willst du sagen, dass die Eingabe vor dem Aktualisieren der Seite an # watch-path-group angehängt wird, anstatt nach dem Aktualisieren der Seite? – yezzz

Antwort

1

bei der Dokumentation der Suche, turbolinks auf bestimmte Links zu deaktivieren, müssen Sie data-turbolinks="false" Attribut auf das Element oder einem seiner Vorgänger hinzuzufügen.

So sollten folgende Arbeiten:

<a href="#" id="add-item" data-turbolinks="false"> 
    <i class="fa fa-plus"></i> 
</a> 

Dies setzt natürlich voraus, wird Ihre eigenen Click-Handler richtig eingerichtet ist, sind Ihre ID einzigartige usw.

+0

Bingo! Bingo! Bingo! – martin

Verwandte Themen