• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

przekazywanie argumentu do jquery

Object Storage Arubacloud
0 głosów
347 wizyt
pytanie zadane 14 czerwca 2018 w JavaScript przez Mebya Użytkownik (700 p.)
Witam,
W jquery chcę zrobić podmienianie zawartości wtedy gdy dany przycisk jest klikniety, mam cztery przyciski z id 0,1,2,3
I teraz pytanie jak przekazać do jquery który przycisk jest kliknięty, w czystym js po prostu dał bym onclick=funkcja(1)
i w skrypcie zrobił switcha, a w jquery to nie mam pojęcia jak to ugryźć.

1 odpowiedź

+1 głos
odpowiedź 14 czerwca 2018 przez pablop76 VIP (123,180 p.)
wybrane 15 czerwca 2018 przez ScriptyChris
 
Najlepsza

W czystym js to nie byłaby dobra praktyka, ale nie o to pytasz więc w jq mamy tzw.kolekcje i automatyczne pętle więc sprawa jest banalna.

$('button').click(function(e){
  console.log(e.target);
});

e.target zwróci id klikniętego butona

1
komentarz 14 czerwca 2018 przez pablop76 VIP (123,180 p.)
edycja 15 czerwca 2018 przez pablop76
Sprawdź w konsoli właściwości klikniętego obiektu, napewno znajdziesz to czego szukasz.
1
komentarz 15 czerwca 2018 przez pablop76 VIP (123,180 p.)
edycja 15 czerwca 2018 przez pablop76

@Mebya,

To wykorzystaj przechwytywanie zdarzenia

update.currentTarget.id

W Twoim kodzie już jest pobrany ten element.

        var $link = $(update.currentTarget);

Masz tutaj referencje do całego klikniętego linku. Pobierasz z niego później do ajaxa href

url: $link.attr('href')

Więc dlaczego go nie wykorzystasz do pobrania id?

ja bym zrobił tak: zamiast $link

var $anchor = $(update.currentTarget);

var $href = $anchor.href;

var $id = $anchor.id;

I korzystał z tych zmiennych.

Jeszcze dla zachowania konwencji update zmieniłbym na e lub event, czyli zdarzenie

 

 

komentarz 15 czerwca 2018 przez Mebya Użytkownik (700 p.)

Zerknąłem teraz na adres URL który jest wywoływany wraz z kliknięciem no i właściwie o tym zapomniałem, 

$('#test').on('click',function(update){
 (...)
var $link = $(update.currentTarget);
}

wtedy nie jest wywoływany odpowiedni adres, bo nie jest kliknięty link tylko id diva "test" w którym te linki się znajdują, dlatego zamiast test powinny być po kolei id znaczników <a> inaczej var $link = $(update.currentTarget); zamiast przekazywać adres GunList/40/Customizing (tego poprawnego) przekazuje GunList/40 (niepoprawny) - wtedy JsonResponse nie jest przekazywany.
Podsumowując wracamy do początku i trzeba podmienić #test na id znaczników <a>

W skrócie onclick musi być na znacznik <a>, w innym wypadku zwracany jest nieodpowiedni adres url

1
komentarz 15 czerwca 2018 przez pablop76 VIP (123,180 p.)
edycja 15 czerwca 2018 przez pablop76
Jeżeli wszystkie linki są w pojemniku id=test to możesz delegować zdarzenie do a, dodając jako drugi parametr metody on() a. Czyli $('#test').on('click','a',function(e){}

Dałem Ci linka do poczytania.
komentarz 15 czerwca 2018 przez Mebya Użytkownik (700 p.)
Dobra, działa jak trzeba, nareszcie.
Dzięki za pomoc i cierpliwość!
Ale jak pisałem, to moj pierwszy kontakt z JS i Jquery

Podobne pytania

0 głosów
1 odpowiedź 163 wizyt
pytanie zadane 8 grudnia 2016 w JavaScript przez hoktaur Pasjonat (22,250 p.)
0 głosów
1 odpowiedź 276 wizyt
pytanie zadane 7 sierpnia 2017 w JavaScript przez ElBajcyko Nowicjusz (150 p.)
0 głosów
1 odpowiedź 334 wizyt
pytanie zadane 3 sierpnia 2017 w JavaScript przez Vorex444 Dyskutant (9,610 p.)

92,572 zapytań

141,423 odpowiedzi

319,645 komentarzy

61,959 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...