![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 419 Pomógł: 5 Dołączył: 7.08.2012 Ostrzeżenie: (0%) ![]() ![]() |
Witam, potrzebuję wykonać funkcję onClick w całym wierszu w polach input, z tym że jeśli klikniemy na dowolne pole z danego wiersza aby funkcja dodała tylko jeden wiersz pod spodem.
U mnie wygląda to w ten sposób że gdy klikam w pole kod towaru prawidłowo pojawia się kolejny wiersz tabeli, natomiast gdy przechodzę w tym samym wierszu do pola ilość lub cena nie chcę aby funkcja dodawajka generowała kolejne wiersze z polami. Proszę o wykasowanie tego tematu:
![]()
} Ten post edytował ZenekN 5.05.2014, 17:13:15 |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 2 350 Pomógł: 512 Dołączył: 4.01.2009 Skąd: Wrocław / Świdnica Ostrzeżenie: (0%) ![]() ![]() |
Nie wiem do końca o co chodzi, ale kieruję się tytułem.
Zrób tak, że wywołujesz funkcję onlick po czym w tej samej funkcji kasujesz wywołanie. Przykład: Kod <script>
function funkcja( el ){ alert("Można kliknąć tylko raz :) "); el.onclick = null; } </script> <input type="button" value="test1" onclick="funkcja(this);"> <input type="button" value="test2" onclick="funkcja(this);"> <input type="button" value="test3" onclick="funkcja(this);"> <input type="button" value="test4" onclick="funkcja(this);"> -------------------- |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 419 Pomógł: 5 Dołączył: 7.08.2012 Ostrzeżenie: (0%) ![]() ![]() |
Swietnie!!! Działa tak jak chciałem zastosowałem onClik dla wiersza Możesz mi powiedzieć co daje wartość this ? w onClick funkcja ? I skąd parser wie że zdarzenie onClick już było raz wywołane i więcej nie można wywoływać ? Ten post edytował ZenekN 5.05.2014, 18:34:38 |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 2 350 Pomógł: 512 Dołączył: 4.01.2009 Skąd: Wrocław / Świdnica Ostrzeżenie: (0%) ![]() ![]() |
Mogę. Generalnie całość masz źle. Nie miesza się HTML z JS. W JS zdarzenia( np. kliknięcie ) możesz dodawać na kilka sposobów. Najlepiej poczytaj na ten temat np. : http://webhelp.pl/artykuly/obsluga-zdarzen-w-przegladarkach/ - tu opisany poprawny sposób dodawania zdarzeń.
Ale wróćmy do Twojego kodu albo lepiej do mojego. Wraz z kliknięciem przekazujemy parametr this. this oznacza konkretny element. Czyli klikając na "test1" this wskazuje na <input type="button" value="test1" onclick="funkcja(this);">, a klikając na test3 w this dostajemy <input type="button" value="test3" onclick="funkcja(this);"> Teraz w naszej funkcji konkretny element mamy pod zmienną el. Teraz warto, żebyś poczytał o DOM. W skrócie chodzi o to, że za pomocą DOM możemy odczytywać, zmieniać wszystkie parametry elementu np. jak wewnątrz funkcji dasz: alert( el.value ); to zostanie wyświetlona wartość HTML-owego pola value. Gdy dasz el.value = "nowa wartość"; to np. z test1 zmieni się wartość pola value na nowa wartość. To samo można robić z onclick. Napisaliśmy w kodzie el.onclick = null; oznacz to tyle, że zmieniamy parametr klikniętego elementu na onclick="", bo null to nic. Czyli usuwamy pierwotne zdarzenie kliknięcia. W razie czego pytaj to może napiszę coś więcej. Pozdrawiam -------------------- |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 419 Pomógł: 5 Dołączył: 7.08.2012 Ostrzeżenie: (0%) ![]() ![]() |
A skąd parser wie że już raz wywołaliśmy funkcję ?
|
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 2 350 Pomógł: 512 Dołączył: 4.01.2009 Skąd: Wrocław / Świdnica Ostrzeżenie: (0%) ![]() ![]() |
Nie wie. Działa to tak:
1. Do jakiegoś elementu mamy przypisaną funkcję na zdarzenie kliknięcia 2. Klikamy na element, więc wywołuje się funkcja 3. funkcja wyświetla alert i usuwa zdarzenie kliknięcia 4. Gdy następnym razem klikamy na element nic się nie dzieje, bo już usunęliśmy zdarzenie kliknięcia na tym elemencie -------------------- |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 419 Pomógł: 5 Dołączył: 7.08.2012 Ostrzeżenie: (0%) ![]() ![]() |
Dzięki ci świetna fachowa rada!
|
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 2.05.2025 - 05:41 |