2016-04-08 18 views
0

ich am Ende davon (haml-Datei) eine Ansichtsseite mit einem Knopf habe:Blättern zu einem bestimmten Ort nach dem Neuladen der Seite

.scroll-here 
    = link_to "Button", example_path, id: "my-button" 

Wenn ich es drücken, die Seite neu geladen und ich möchte es blättern automatisch wieder auf .scroll-here (aber wenn die Seite nicht geladen wird, weil diese Taste gedrückt wird, sollte der Fokus nur normal sein, oben auf der Seite).

Vielen Dank im Voraus!

+0

Wie können Sie unterscheiden die beiden wenn die Seite lädt? – apokryfos

+0

Nun, nur durch Drücken einer bestimmten "Meine-Taste" -Taste – Zelenka

+0

So gibt es keine Möglichkeit zu wissen, ob die Taste auf der vorherigen Seite gedrückt wurde, wenn Sie diese Seite laden? Keine Abfragezeichenfolge? Verschiedene Überschriften? Etwas? – apokryfos

Antwort

0

Vielleicht könnten Sie eine ID an das Element hinzufügen, wo Sie blättern möchten, zum Beispiel:

<div id="scrollHereIfButtonIsPressed"></div> 

dann die ‚#scrollHereIfButtonIsPressed‘ ergänzen die URL auf die Aktion-Ereignis der Schaltfläche, so dass sie bewegen würde zu diesem Element, wenn die Taste gedrückt wird, um zu dieser URL zu gehen.

ex:

<button onclick="window.location.href = window.location.href + '?r='+(+new Date())+'#scrollHereIfButtonIsPressed';window.location.reload(true);"> 
example button 
</button> 
+0

Es gibt bereits eine Klasse '.scroll-here' – Zelenka

+0

ja, aber es braucht eine ID für den Anker scrollen, um zu arbeiten – KiiroSora09

+0

Wie füge ich ID = "scrollHereIfButtonIsPressed" zu "= link_to" Button ", example_path , id: "meine-taste" "? – Zelenka

0

nicht allzu vertraut mit Ruby-on-Rails aber die folgenden funktionieren könnte:

.scroll-here 
    = link_to "Button", example_path+"?reload=1", id: "my-button" 

Verwenden Sie den folgenden jQuery-Code

$(document).ready(function() { 
    if (window.location.href.indexOf("reload=1") >= 0) { 
      $('html, body').animate({ 
       scrollTop: $(".scroll-here").offset().top 
      }); 
    } 
}); 
+0

Ich habe "Uncaught TypeError: window.location.indexOf ist keine Funktion" – Zelenka

+0

Sorry, vergaß die href Teil @Zelenka – apokryfos

+0

Nein, immer noch nach dem Neuladen der Fokus befindet sich oben auf der Seite – Zelenka

Verwandte Themen