Czy jest jakiś sposób na użycie onclick
atrybutu html do wywołania więcej niż jednej funkcji JavaScript?
javascript
html
methods
onclick
Qcom
źródło
źródło
Odpowiedzi:
Ale tak naprawdę lepiej nie używać
onclick
w ogóle i dołączać moduł obsługi zdarzeń do węzła DOM za pomocą kodu JavaScript. Jest to znane jako dyskretny JavaScript .źródło
onclick=""
nie jest w rzeczywistościonClick=""
. To bardzo częsty błąd.jsx
nie jest,html
a to pytanie nie zostało oznaczone tagiemjsx
Łącze ze zdefiniowaną 1 funkcją
Odpalanie wielu funkcji od
someFunc()
źródło
Jest to kod wymagany, jeśli używasz tylko JavaScript, a nie jQuery
źródło
Użyłbym tej
element.addEventListener
metody, aby połączyć ją z funkcją. Z tej funkcji można wywoływać wiele funkcji.Zaletą, którą widzę w powiązaniu zdarzenia z pojedynczą funkcją, a następnie w wywołaniu wielu funkcji, jest to, że możesz wykonać pewne sprawdzanie błędów, mieć niektóre instrukcje if if else, aby niektóre funkcje były wywoływane tylko, jeśli spełnione są określone kryteria.
źródło
Jasne, po prostu powiąż z nim wielu słuchaczy.
Short cutting with jQuery
źródło
ES6 React
źródło
Możesz osiągnąć / wywołać jedno wydarzenie za pomocą jednej lub więcej metod.
źródło
Możesz dodać wiele tylko za pomocą kodu, nawet jeśli masz drugi
onclick
atrybut w html, który zostanie zignorowany iclick2 triggered
nigdy nie zostanie wydrukowany, możesz dodać jeden po akcji,mousedown
ale to tylko obejście.Najlepiej więc dodać je kodem, jak w:
Musisz uważać, ponieważ wydarzenia mogą się kumulować, a jeśli dodasz wiele wydarzeń, możesz stracić liczenie kolejności, w jakiej są one uruchamiane.
źródło
Jednym z dodatków, do obsługi JavaScript jest użycie nazwanej funkcji.
Oto przykład funkcji anonimowej:
Ale wyobraź sobie, że masz kilka z nich podłączonych do tego samego elementu i chcesz usunąć jeden z nich. Nie można usunąć jednej anonimowej funkcji z tego detektora zdarzeń.
Zamiast tego możesz użyć nazwanych funkcji:
Dzięki temu kod jest znacznie łatwiejszy do odczytania i utrzymania. Zwłaszcza jeśli twoja funkcja jest większa.
źródło
Możesz połączyć wszystkie funkcje w jedną i wywołać je. Biblioteki takie jak Ramdajs mają funkcję łączenia wielu funkcji w jedną.
lub możesz umieścić kompozycję jako osobną funkcję w pliku js i wywołać ją
źródło
Jest to alternatywa dla Brad Anser - możesz użyć przecinka w następujący sposób
jednak lepiej NIE stosować tego podejścia - w przypadku małych projektów można użyć funkcji onclick tylko w przypadku wywołania jednej funkcji (więcej: zaktualizowany dyskretny javascript ).
Pokaż fragment kodu
źródło