de-vraag
  • Otázky
  • Značky
  • Používatelia
Oznámenia
Odmeny
Registrácia
Po registrácii budete informovaní o odpovediach a komentároch na vaše otázky.
Prihlásiť sa
Ak už máte konto, prihláste sa a skontrolujte nové oznámenia.
Za pridané otázky, odpovede a komentáre budú udelené odmeny.
Viac na
Zdroj
Upraviť
 user67033
user67033
Question

Zmena zdroja obrázka pomocou jQuery

Môj DOM vyzerá takto:

<div id="d1">
   <div class="c1">
            <a href="#"><img src="img1_on.gif"></a>
            <a href="#"><img src="img2_on.gif"></a>
   </div>
</div>

Keď niekto klikne na obrázok, chcem, aby sa src obrázka zmenil na <img src="imgx_off.gif">, kde x predstavuje obrázok číslo 1 alebo 2.

Je to možné alebo musím na zmenu obrázkov použiť CSS?

706 2009-02-16T19:23:59+00:00 3
 CupawnTae
CupawnTae
Edited question 18 júl 2015 в 9:50
Programovanie
image
javascript
jquery
This question has 1 odpoveď in English, to read them log in to your account.
 jonstjohn
jonstjohn
16 február 2009 в 7:27
2009-02-16T19:27:48+00:00
Viac na
Zdroj
Upraviť
#8828818

Môžete použiť funkciu jQuery's attr(). Ak má napríklad váš tag img atribút id s hodnotou 'my_image', urobíte toto:

<img id="my_image" src="first.jpg"/>

Potom môžete zmeniť src vášho obrázka pomocou jQuery takto:

$("#my_image").attr("src","second.jpg");

Ak to chcete pripojiť k udalosti click, môžete napísať:

$('#my_image').on({
    'click': function(){
        $('#my_image').attr('src','second.jpg');
    }
});

Ak chcete obrázok otočiť, môžete urobiť toto:

$('img').on({
    'click': function() {
         var src = ($(this).attr('src') === 'img1_on.jpg')
            ? 'img2_on.jpg'
            : 'img1_on.jpg';
         $(this).attr('src', src);
    }
});
Tony Brasunas
Tony Brasunas
Edited answer 25 september 2018 в 7:20
.attr() | jQuery API Documentation
api.jquery.com
1609
0
Peter Ajtai
Peter Ajtai
11 september 2010 в 11:27
2010-09-11T23:27:19+00:00
Viac na
Zdroj
Upraviť
#8828819

Ukážem vám, ako zmeniť obrázok src tak, aby sa po kliknutí na obrázok otáčal cez všetky obrázky, ktoré sú vo vašom HTML (konkrétne vo vašom id d1 a triede c1)... či už máte v HTML 2 alebo viac obrázkov**.

Ukážem vám tiež, ako vyčistiť stránku po dokončení dokumentu tak, aby sa na začiatku zobrazil len jeden obrázok.

Úplný kód

$(function() {

    var $images = $("#d1 > .c1 > a").clone();  

    var $length = $images.length;
    var $imgShow = 0;

    $("#d1 > .c1").html( $("#d1 > .c1 > a:first") );  

    $("#d1 > .c1 > a").click(function(event) { 

        $(this).children().attr("src", 
                        $("img", $images).eq(++$imgShow % $length).attr("src") );
        event.preventDefault();

    });
});

Rozdelenie

  1. Vytvorte kópiu odkazov obsahujúcich obrázky (poznámka: pre pridanú funkčnosť by ste mohli využiť aj atribút href odkazov... napríklad zobraziť pracovný odkaz pod každým obrázkom):

        var $images = $("#d1 > .c1 > a").clone(); ;
  2. Skontrolujte, koľko obrázkov bolo v HTML, a vytvorte premennú na sledovanie toho, ktorý obrázok sa zobrazuje:

    premenná $dĺžka = $images.length;
    var $imgShow = 0;
  3. Upravte dokument'HTML tak, aby sa zobrazoval len prvý obrázok. Všetky ostatné obrázky odstráňte.

    $("#d1 > .c1").html( $("#d1 > .c1 > a:first") );
  4. Viažte funkciu, ktorá sa postará o kliknutie na odkaz na obrázok.

        $("#d1 > .c1 > a").click(function(event) {
            $(this).children().attr("src", $("img", $images).eq(++$imgShow % $length).attr("src") );
            event.preventDefault();
        });

    Jadrom uvedeného kódu je použitie ++$imgShow % $length na cyklické prechádzanie objektu jQuery, ktorý obsahuje obrázky. ++$imgShow % $length najprv zvýši naše počítadlo o jednotku a potom toto číslo zmení na počet obrázkov. Výsledný index sa tak bude cyklicky meniť od 0 po dĺžka-1, čo sú indexy objektu $images. To znamená, že tento kód bude pracovať s 2, 3, 5, 10 alebo 100 obrázkami... cyklicky prechádza každý obrázok v poradí a po dosiahnutí posledného obrázka sa znovu spustí od prvého obrázka.

    Okrem toho sa .attr() používa na získanie a nastavenie atribútu "src" obrázkov. Na výber prvkov z objektu $images nastavím $images ako jQuery context pomocou tvaru $(selector, context). Potom použijem .eq() na výber práve prvku s konkrétnym indexom, ktorý ma zaujíma.


jsFiddle príklad s 3 obrázkami


Môžete tiež uložiť src do poľa.
jsFiddle príklad s 3 obrázkami

A tu'je spôsob, ako začleniť hrefs zo značiek kotiev okolo obrázkov:
jsFiddle príklad

Peter Ajtai
Peter Ajtai
Edited answer 12 september 2010 в 2:59
.attr() | jQuery API Documentation
api.jquery.com
Edit fiddle - JSFiddle - Code Playground
Test your JavaScript, CSS, HTML or CoffeeScript online with JSFiddle code editor.
jsfiddle.net
Edit fiddle - JSFiddle - Code Playground
Test your JavaScript, CSS, HTML or CoffeeScript online with JSFiddle code editor.
jsfiddle.net
Edit fiddle - JSFiddle - Code Playground
Test your JavaScript, CSS, HTML or CoffeeScript online with JSFiddle code editor.
jsfiddle.net
Edit fiddle - JSFiddle - Code Playground
Test your JavaScript, CSS, HTML or CoffeeScript online with JSFiddle code editor.
jsfiddle.net
17
0
 FernandoEscher
FernandoEscher
28 september 2010 в 12:44
2010-09-28T00:44:59+00:00
Viac na
Zdroj
Upraviť
#8828820

Môžete to urobiť aj pomocou jQuery týmto spôsobom:

$(".c1 img").click(function(){
     $(this).attr('src','/new/image/src.jpg');   
});

Môžete mať podmienku, ak existuje viacero stavov pre zdroj obrázku.

 FernandoEscher
FernandoEscher
Edited answer 16 jún 2011 в 7:30
9
0
Pridať otázku
Kategórie
Všetky
Technológia
Kultúra / Rekreácia
Život / Umenie
Veda
Profesionálne
Obchod
Používatelia
Všetky
New
Popular
1
365
Registered pred dňom
2
True Image
Registered pred dňom
3
archana agarwal
Registered pred 3 dňami
4
Maxim Zhilyaev
Registered pred 6 dňami
5
adambotsfford adambotsfford
Registered pred týždňom
BG
DE
EL
ES
ET
FI
FR
ID
IT
JA
NL
PT
RU
SK
SL
ZH
© de-vraag 2022
Zdroj
stackoverflow.com
na základe licencie cc by-sa 3.0 s uvedením autora