Mój DOM wygląda następująco:
<div id="d1">
<div class="c1">
<a href="#"><img src="img1_on.gif"></a>
<a href="#"><img src="img2_on.gif"></a>
</div>
</div>
Gdy ktoś kliknie obraz, chcę, aby obraz src zmienił się na <img src="imgx_off.gif">
gdzie x
reprezentuje obraz numer 1 lub 2.
Czy to możliwe, czy muszę używać CSS do zmiany obrazów?
javascript
jquery
image
użytkownik67033
źródło
źródło
19th July, 2016 15:39 PM
Liczba głosów pozytywnych liczy 369 i @jonstjohn Odpowiedź liczba głosów pozytywnych 931 . Ale Such A Bad Luck, @OP nie zalogował się późniejFeb 17 '09 at 2:57
.:(
I @jonstjohn Odpowiedź Pozostają nieoznakowanych .Odpowiedzi:
Możesz użyć funkcji attr () jQuery . Na przykład, jeśli twój
img
tag maid
atrybut „my_image”, zrobiłbyś to:Następnie możesz zmienić
src
obraz za pomocą jQuery w następujący sposób:Aby dołączyć to do
click
wydarzenia, możesz napisać:Aby obrócić obraz, możesz to zrobić:
źródło
Jednym z typowych błędów popełnianych przez ludzi podczas zmiany źródła obrazu nie jest oczekiwanie na ładowanie obrazu, aby wykonać późniejsze czynności, takie jak dojrzewanie rozmiaru obrazu itp. Aby
.load()
załadować obraz, trzeba użyć metody jQuery .Powód edycji: https://stackoverflow.com/a/670433/561545
źródło
Po więcej informacji. Próbuję ustawić atrybut src za pomocą metody attr w jquery dla obrazu reklamy, używając na przykład składni:
$("#myid").attr('src', '/images/sample.gif');
To rozwiązanie jest przydatne i działa, ale jeśli zmienisz ścieżkę, zmień także ścieżkę obrazu i nie działa.
Szukam rozwiązania tego problemu, ale nic nie znalazłem.
Rozwiązaniem jest umieszczenie „\” na początku ścieżki:
$("#myid").attr('src', '\images/sample.gif');
Ta sztuczka jest dla mnie bardzo przydatna i mam nadzieję, że przyda się innym.
źródło
JEŻELI istnieje nie tylko środowisko jQuery lub inne struktury zabijania zasobów - wiele KB do pobrania za każdym razem przez każdego użytkownika tylko dla prostej sztuczki - ale także natywny JavaScript (!):
Można to napisać ogólnie i bardziej elegancko:
źródło
Pokażę ci, jak zmienić obraz
src
, aby po kliknięciu obraz obracał się przez wszystkie obrazy, które są w twoim HTML (w twoimd1
identyfikatorze ic1
klasie) ... czy masz 2 lub więcej obrazów w twoim HTML .Pokażę też, jak wyczyścić stronę po przygotowaniu dokumentu, tak aby początkowo wyświetlał się tylko jeden obraz.
Pełny kod
Podział
Utwórz kopię linków zawierających obrazy (uwaga: możesz również skorzystać z atrybutu href linków dla dodatkowej funkcjonalności ... na przykład wyświetl link roboczy pod każdym obrazem ):
Sprawdź, ile obrazów było w kodzie HTML i utwórz zmienną, aby śledzić, który obraz jest wyświetlany:
Zmodyfikuj kod HTML dokumentu, aby wyświetlał się tylko pierwszy obraz. Usuń wszystkie pozostałe obrazy.
Powiąż funkcję do obsługi po kliknięciu łącza obrazu.
Serce powyższego kodu służy
++$imgShow % $length
do przechodzenia między obiektami jQuery zawierającymi obrazy.++$imgShow % $length
najpierw zwiększa nasz licznik o jeden, a następnie modyfikuje tę liczbę o liczbę obrazów. Dzięki temu wynikowy indeks będzie się zmieniał od0
dolength-1
, które są indeksami$images
obiektu. Oznacza to, że ten kod będzie działał z 2, 3, 5, 10 lub 100 obrazami ... cyklicznie przechodząc między poszczególnymi obrazami i uruchamiając ponownie od pierwszego obrazu po osiągnięciu ostatniego obrazu.Ponadto
.attr()
służy do pobierania i ustawiania atrybutu „src” obrazów. Aby wybrać elementy z$images
obiektu, ustawiam$images
jako kontekst jQuery za pomocą formularza$(selector, context)
. Następnie.eq()
wybieram tylko element o określonym indeksie, który mnie interesuje.Przykład jsFiddle z 3 obrazami
Możesz także przechowywać
src
s w tablicy.Przykład jsFiddle z 3 obrazami
A oto jak włączyć hrefs ze znaczników zakotwiczenia wokół obrazów:
przykład jsFiddle
źródło
Mam nadzieję, że to zadziała
źródło
Powinieneś dodać atrybut id do tagu obrazu, jak poniżej:
możesz użyć tego kodu, aby zmienić źródło obrazów:
źródło
Możesz to również zrobić za pomocą jQuery w następujący sposób:
Możesz mieć warunek, jeśli istnieje wiele stanów dla źródła obrazu.
źródło
Miałem ten sam problem, gdy próbowałem wywołać przycisk re captcha. Po pewnym wyszukiwaniu, teraz poniższa funkcja działa dobrze w prawie wszystkich znanych przeglądarkach (Chrome, Firefox, IE, Edge, ...):
„theUrl” służy do renderowania nowego obrazu captcha i może zostać zignorowany w twoim przypadku. Najważniejszym punktem jest wygenerowanie nowego adresu URL, który zmusza FF i IE do ponownego wyświetlenia obrazu.
źródło
Zmień źródło obrazu za pomocą jQuery
click()
element:
kod:
źródło
źródło
Mam dzisiaj ten sam cud, co zrobiłem w ten sposób:
źródło
Jest to gwarantowany sposób na wykonanie tego w waniliowym (lub po prostu czystym) JavaScript:
źródło
Tylko dodatek, aby uczynić go jeszcze bardziej małym:
źródło
Nie ma możliwości zmiany źródła obrazu za pomocą CSS.
Jedynym możliwym sposobem jest użycie Javascript lub dowolnej biblioteki JavaScript, takiej jak jQuery .
Logika-
Obrazy są wewnątrz div i nie ma tego obrazu
class
lub nie maid
go.Logika będzie więc wybierać elementy wewnątrz,
div
gdzie znajdują się obrazy.Następnie zaznacz wszystkie elementy obrazów za pomocą pętli i zmień obraz src za pomocą Javascript / jQuery .
Przykładowy kod z wyjściem demo
źródło