Symulacja kliknięcia obiektu w jQuery

0

Witam

Mam pewien problem. Piszę skrypt z użyciem jQuery, w którym chciałbym zasymulować kliknięcie elementu (obrazku, kliknięcie powoduje jego zmianę na inny).
Fragment obsługi zdarzenia (kliknięcia) wygląda tak:

$('.element').bind('click',function()
{
//kod funkcji
})

Umieszczenie elementu na stronie:
<div class="element" id="1"><img src="źródło"/></div>
(w funkcji obsługującej zdarzenie jest instrukcja zmieniająca źródło obrazka). Przy kliknięciu myszką wszystko działa prawidłowo.
Nie działa jednak metoda trigger(). Takie wywołanie nie daje żadnego efektu:
$(getElementById("1")).trigger("click");
Niestety nie wiem gdzie tu jest błąd i dlaczego to nie działa.

0

Przepuść kod HTML przez walidator. Hint: Zobacz od jakich znaków NIE może zaczynać sie ID.

BTW:
Co to za konstrukcja? $(getElementById("1")).

0

Oczywiście identyfikator jest inny, a 1 dałem tylko jako przykład
Odwołanie jest dobre, bo gdy używam innej metody (np. fadeOut) to wszystko działa prawidłowo. Próbowałem też odwoływać się przez tablice (getElementsByTagName) i też nie działało.

0
grzegorz0909 napisał(a):

Oczywiście identyfikator jest inny, a 1 dałem tylko jako przykład
Odwołanie jest dobre, bo gdy używam innej metody (np. fadeOut) to wszystko działa prawidłowo. Próbowałem też odwoływać się przez tablice (getElementsByTagName) i też nie działało.

pokaż normalny kod - wklej go, nie przepisuj, nic nie zmieniaj

nie ma czegoś takiego jak getElementById. Jest jedynie document.getElementById
w połączeniu z $() nie musisz używać tego typu instrukcji, po prostu piszesz

$('#id') a jeśli chcesz odpowiednik document.getElementsByTagName('tag') to piszesz $('tag')

poza tym zamiast .trigger('click') ładniej użyć .click(), a zamiast .bind('click', function() { - .click(function() {

0

można wiedzieć dlaczego <element id="1">asdasd</element> jest bee? Co gdy potrzebujemy czegoś generowanego automatycznie i tego będzie bardzo dużo, umieszczenie takiego id ma sens chociaż można je poprzedzić kilkoma znakami np iki1, iki2, ... iki10 i później pomijać ale wygodniej jest po prostu wrzucić tam liczbę, dlaczego jest to trakie złe?

0

a kto powiedział że jest złe?
specyfikacja HTML5 mówi że ID nie może się zaczynać jedynie od białych znaków - może być liczbą
id nie mogło się zaczynać od cyfry we wcześniejszych wersjach HTML, również w CSS możesz mieć problemy z takimi identyfikatorami
jedynie dla kompatybilności i oszczędzenia sobie problemów nie powinieneś rozpoczynać id od cyfry

jest złe jedynie jeśli chodzi o semantykę kodu - identyfikator elementu powinien nosić informację czego dotyczy dany element

jeśli coś generujesz dynamicznie w javascript to możesz to od razu trzymać w tablicy, nie musisz przypisywać identyfikatorów
jeśli generujesz po stronie serwera to wydajniej i prościej będzie pobrać elementy poprzez odwołanie do dzieci jakiegoś elementu, lub po klasie niż wywoływać w pętli kilkadziesiąt razy .getElementById

1 użytkowników online, w tym zalogowanych: 0, gości: 1