Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: jQueryn vaihtoehtoiset valinnat

pistemies [14.12.2018 00:58:29]

#

Minulla on tekeillä kuvaeistys. Kuvia on kahden eri elementin sisällä. Onko mahdolista tarkistaa jotenkin että jompaa kumpaa on klikattu.
Siis:

$('#abc_1').click();
$('#abc_2').click();

Tätä pohdin siksi, ettei tarttisi molemmille elementeille lisätä kuvaesitys-skriptiä, vaan ne voisi käyttää samaa skriptiä.

Lebe80 [14.12.2018 08:22:16]

#

jQueryn (ja yleensä mikä tahansa onClick) palauttaa kielestä riippuen klikatun elementin.

Itse sen sijaan tykkään laittaa yksilöiviä attribuutteja, joko css-luokkana taikka data-attribuuttina:


Jqueryssä voit saada sen seuraavasti:

<div class="slideshow-clickable slideshow-frontpage" data-foobar="frontpage">...</div>
<div class="slideshow-clickable slideshow-otherpage" data-foobar="otherpage">...</div>
$(".slideshow-clickable").click( function(e){

   var klikattavaElementti = $(this); // tätä sinä kysyit
   var dataId = $(this).data("foobar");   // tätä minä käyttäisin
   console.log(["-- klikattiin elementtiä --", dataId])
   if (dataId=="frontpage"){
      // ...
   }

});

En käyttäisi selectorina id -attribuuttia, koska tällöin elementtejä ei saisi olla kahta samalla sivulla samalla id:llä. Elementtejä, joilla on samoja classeja voi olla useita samalla sivulle. Sama koodinpätkä siis toimisi nyt suoraan, oli "slideshow-clickable" -elementtejä sivulla kuinka monta tahansa.

pistemies [15.12.2018 09:45:19]

#

Lebe80 kirjoitti:

(14.12.2018 08:22:16): jQueryn (ja yleensä mikä tahansa...

Kiitos. Päädyin muuttamaan kuvaesityksen tapaa. Tämä kuvaesitys luo kuvaesityksen verkkokaupan jostakin tuotteesta, kun siinä on useampia lisäkuvia. Tämä kuvaesitys on myös valinnainen, niin että sen saa admin sivulla muutettua Päällä/Pois. Niimpä tein yksinkertaisen homman, että jos kuvaesitys on asetettu päälle, tuotteen lisäkuvien "peukalonkynsi-kuvia" ei näytetä tuotesivulla.

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta