Hei!
Olen yrittämässä tällaista:
Sivu latautuu normaalisti mutta hakee myös requesteilla muut sivut, joten linkit toimisivat nopeammin.
Ongelmani on yksinkertaisesti että en osaa saada sitä variableksi.
Muuten saisin sen toimimaan.
(Mieluiten js koska scripti on jo valmiina)
epe07 kirjoitti:
en osaa saada sitä variableksi
Mitä?
Metabolix kirjoitti:
epe07 kirjoitti:
en osaa saada sitä variableksi
Mitä?
No en siis ymmärrä miten muutetaan jquery varible js varibleksi
epe07 kirjoitti:
No en siis ymmärrä miten muutetaan jquery varible js varibleksi
... mitä?
Otahan nyt ihan alusta: mitä pitäisi saada aikaan (ja miksi), mitä nyt tapahtuu, ja mikä menee pieleen?
Tarkoitatko, että sinulla on hankaluuksia tallettaa ladattu sivu (kuten HTML-koodi) muuttujaan?
##################
# SIVU #
##################
# Tähän tulisi #
# sivu, joka #
# haetaan #
# requestilla #
# page.php?sivu=1#
##################
Helpompi?
Tarkoitan ettei sivua ladattaisi uudelleen, vain sisältö haettaisiin.
Ajaxiako haet? Putkassa on ajax-opas, ja Googlesta löytyy paljon oppaita ja esimerkkejä plain JS:lle ja jQuery:lle. jQueryllä pitäisi onnistua helpommin:
$("#elementti-johon-haluat-ladata").load("page.php?sivu=1");
On helpompi. Mikset heti kysynyt järkevästi? Sinun ei tarvitse ”saada sitä variableksi”, mitä ikinä tarkoititkaan.
<a href="page.php?sivu=1">linkki</a> <div id="sisalto-tahan"> <div id="sisalto"> plaaplaa </div> </div>
"use strict"; jQuery(function() { // Mitkä linkit muutetaan? Tässä kaikki. Voisi olla vaikka "a.jquerylinkki". var selector = "a[href]"; // Laitetaan linkeille käsittelijä. $(selector).click(function handler(e) { // Otetaan vain paikalliset linkit uusille sivuille. if (!this.getAttribute("href").match(/^([-+.a-zA-Z0-9]+:)?\/\/|^#/)) { // Estetään normaali lataus. e.preventDefault(); // Erotetaan linkistä osoite ja #-osa. var hash = this.href.match(/#.*/); var href = this.href.replace(/#.*/, ''); // Ladataan #sisalto-tahan-elementtiin linkitetyn sivun #sisalto. $("#sisalto-tahan").load(href + " #sisalto", function() { // Laitetaan uusillekin linkeille käsittelijä. $(selector, this).click(handler); // Jos linkissä oli #-osa, mennään siihen. if (hash) { location.hash = hash; } // TODO: Käsittele selaimen historiaa (history.pushState). }); } }); });
(Muokkaus: Laitoin nyt sisällön ympärille vielä ylimääräisen elementin, koska jQuery lisäsikin sisältöelementin kokonaan eikä vain sen sisältöä. Tämä ei vaikuta toimivuuteen vaan on tekninen yksityiskohta.)
Ei toimi. :I
http://puu.sh/bp6N6/e89cd966b8.png & jquery ihan alussa, ja linkki juuri tuolleen.
<a href="javascript:lataaSisalto();">Hae</a> <div id="dynamic-content"> </div> <script type="text/javascript"> function lataaSisalto() { $("#dynamic-content").load("Tähän osoite, mistä kamaa haetaan"); } </script>
epe07 kirjoitti:
Ei toimi. :I
Anna sitten linkki siihen sivulle äläkä mitään kuvia kopioidusta lähdekoodista. Lisäksi voisit edes yrittää kertoa, miten koodi ”ei toimi” ja miten olet yrittänyt ratkaista ongelmaa.
Ehkä todennäköisin ongelma sinulla on, että et ole laittanut tarvittavaa diviä ladattavalle sivulle.
groovyb kirjoitti:
<a href="javascript:lataaSisalto();">Hae</a>
Tämä linkki ei ole minkään hyvän käytännön mukainen vaan näyttää karanneen 1990-luvulta. Linkkien pitäisi toimia ensisijaisesti ilman JavaScriptia, jotta sivuja voisi avata uusiin tabeihin, linkkejä voisi kopioida ja hakukoneet pystyisivät liikkumaan sivustolla (ja sivut toimisivat myös ilman JS:ää selaavilla).
Lataako tuo siis hrefin?
Tässä div jutussa ongelmana on, että sivuni koostuu div & table tägeistä.
(kyllä, tiedän että ei pitäisi.)
EDIT:
Kaikki toimii, (1990 luvun koodilla, tosiaan onclick).
epe07 kirjoitti:
sivuni koostuu div & table tägeistä.
(kyllä, tiedän että ei pitäisi.)
No tableja pitäisi käyttää jos niitä on tarve käyttää.
Jotkut ottaa vähän liian tosissaan että taulukoita ei saa koskaan käyttää. Oon nähnyt sellaisenkin sivun jossa oli listattu firman liikkeitä tyyliin kaupunki, osoite, puhelinnumero omissa sarakkeissaan ja tämä oli toteutettu kolmella vierekkäisellä divillä. Sitten kun johonkin tuli rivinvaihtoja niin sarakkeiden tiedot ei siitä alaspäin osuneetkaan kohdalleen :[
epe07 kirjoitti:
Lataako tuo siis hrefin?
Mikä ”tuo”? Minun versioni kyllä – minkähän muunkaan? – mutta groovyb:n koodi ei.
epe07 kirjoitti:
Tässä div jutussa ongelmana on, että sivuni koostuu div & table tägeistä.
Mikä tässä edelleenkään estää laittamasta sitä muuttuvaa sisältöosaa divin sisään? Div voi olla taulukon sisällä tai taulukko divin sisällä. Jos ja kun kaikki sivut ovat kokonaisia, voit laittaa ulomman id:n suoraan body-elementille ja sen alle yhden divin, jonka sisällä on koko muu sivu.
Aihe on jo aika vanha, joten et voi enää vastata siihen.