Chcę, aby ten link zawierał okno dialogowe JavaScript z pytaniem użytkownika „ Jesteś pewien? T / N ”.
<a href="delete.php?id=22">Link</a>
Jeśli użytkownik kliknie „Tak”, link powinien się załadować, jeśli „Nie” nic się nie stanie.
Wiem, jak to zrobić w formularzach, używając onclick
funkcji zwracającej true
lub false
. Ale jak to zrobić za pomocą <a>
linku?
javascript
html
dom-events
Christoffer
źródło
źródło
Odpowiedzi:
Inline moduł obsługi zdarzeń
W najprostszy sposób możesz użyć tej
confirm()
funkcji w moduleonclick
obsługi inline .Zaawansowana obsługa zdarzeń
Ale zwykle chciałbyś oddzielić HTML i JavaScript , więc sugeruję, abyś nie korzystał z wbudowanych programów obsługi zdarzeń, ale umieścił klasę w linku i dodał do niego detektor zdarzeń.
Ten przykład działa tylko w nowoczesnych przeglądarkach (dla starszych IES można użyć
attachEvent()
,returnValue
i stanowią implementacjęgetElementsByClassName()
lub korzystać z biblioteki jak jQuery, które pomogą z problemów w różnych przeglądarkach). Możesz przeczytać więcej o tej zaawansowanej metodzie obsługi zdarzeń w MDN .jQuery
Chciałbym trzymać się z daleka od bycia uważanym za fanboya jQuery, ale manipulacja DOM i obsługa zdarzeń to dwa obszary, w których najbardziej pomaga w różnicach w przeglądarce. Dla zabawy, oto jak wyglądałoby to z jQuery :
źródło
confirm(…)
w module obsługi w wierszu . Nie mogłem tego odtworzyć.Sugeruję unikanie wbudowanego JavaScript:
Demo JS Fiddle .
Powyżej zaktualizowano, aby zmniejszyć przestrzeń, ale zachowując przejrzystość / funkcję:
Demo JS Fiddle .
Trochę spóźniona aktualizacja, do użycia
addEventListener()
(jak sugeruje bažmegakapa , w komentarzach poniżej):Demo JS Fiddle .
Powyższe wiąże funkcję ze zdarzeniem każdego pojedynczego łącza; co jest potencjalnie dość marnotrawstwem, gdy można powiązać obsługę zdarzeń (przy użyciu delegowania) z elementem nadrzędnym, takim jak:
Demo JS Fiddle .
Ponieważ obsługa zdarzeń jest dołączona do
body
elementu, który zwykle zawiera wiele innych, klikalnych elementów, użyłem funkcji tymczasowej (actionToFunction
) w celu ustalenia, co zrobić z tym kliknięciem. Jeśli element klikany jest link, a zatem matagName
za
, click-manipulacja jest przekazywany doreallySure()
funkcji.Bibliografia:
addEventListener()
.confirm()
.getElementsByTagName()
.onclick
.if () {}
.źródło
addEventListener
). +1.addEventListener()
modelem.if(check == true)
zif(check)
.źródło
Możesz także spróbować tego:
źródło
jAplus
Możesz to zrobić bez pisania kodu JavaScript
Strona demonstracyjna
źródło
Ta metoda różni się nieco od jednej z powyższych odpowiedzi, jeśli dołączasz moduł obsługi zdarzeń za pomocą addEventListener (lub attachEvent).
Możesz dołączyć ten moduł obsługi za pomocą:
Lub dla starszych wersji Internet Explorera:
źródło
window.event
.Dla zabawy zamierzam użyć pojedynczego zdarzenia w całym dokumencie zamiast dodawać zdarzenie do wszystkich tagów zakotwiczenia:
Ta metoda byłaby bardziej wydajna, gdybyś miał wiele tagów zakotwiczenia. Oczywiście staje się jeszcze bardziej wydajne, gdy dodasz to zdarzenie do kontenera zawierającego wszystkie tagi kotwicy.
źródło
Większość przeglądarek nie wyświetla niestandardowego komunikatu przekazanego do
confirm()
.Dzięki tej metodzie możesz wyświetlić wyskakujące okienko z niestandardowym komunikatem, jeśli użytkownik zmienił wartość dowolnego
<input>
pola.Możesz zastosować to tylko do niektórych linków , a nawet innych elementów HTML na swojej stronie. Po prostu dodaj niestandardową klasę do wszystkich linków, które wymagają potwierdzenia i zastosuj, użyj następującego kodu:
Spróbuj zmienić wartość wejściową w przykładzie, aby uzyskać podgląd tego, jak to działa.
źródło
UŻYWANIE PHP, HTML I JAVASCRIPT do monitowania
Tylko jeśli ktoś szuka użycia php, html i javascript w jednym pliku, poniższa odpowiedź działa dla mnie. Dołączyłem z linkiem ikonę „kosz” bootstrap.
powodem, dla którego użyłem kodu php w środku jest to, że nie mogę go używać od samego początku ..
poniższy kod nie działa dla mnie: -
i zmodyfikowałem go jak w pierwszym kodzie, a następnie uruchamiam tak, jak potrzebuję. Mam nadzieję, że mogę pomóc komuś innemu w mojej sprawie.
źródło