Buduję lightbox jako projekt szkolny i nie mogę używać jQuery. Mam obraz. Po kliknięciu, JavaScript tworzy przezroczysty element div z identyfikatorem "nakładka". Chcę, aby div usunął się, lub rodzic, aby go usunąć, ale to nie działa. Myślę, że ma to związek z tym, że nie możesz połączyć "onclick" z elementem, który jeszcze nie istnieje.Tworzenie elementu, który może go sam usunąć?
Odpowiedz
Musisz usunąć element z rodzica. Coś takiego:
d = document.getElementById('overlay');
d.parentNode.removeChild(d);
Albo może po prostu schować go:
d.style.display = 'none';
I, oh: można dodać kod JavaScript do (nowo utworzone) elementu poprzez przypisanie funkcji do atrybutu onclick.
d = document.createElement('div');
d.onclick = function(e) { this.parentNode.removeChild(this) };
Nie używaj znacznika onclick
w znaczniku, użyj funkcji zdarzeń JavaScript, takich jak addEventListener
, aby dynamicznie dodawać zdarzenia do elementów. Powinieneś również upewnić się, że po usunięciu elementów poprawnie wyczyścisz wszystkie swoje referencje (innymi słowy, wyrejestruj procedury obsługi zdarzeń).
Dedykować umysł do opracowania? –
mam go :) robiłem go jak bart smutny, ale to nie działa. mój kod wyglądał mniej więcej tak:
image.onclick = function(){ *create overlay*};
overlay.oncklick = function() {*overlay.parentNode.removeChild(overlay)*};
przeglądarka działa jak wtf? bo czyta kod i myśli "Nie mogę sprawdzić, czy użytkownik kliknął nieistniejący element." Zrobiłem to:
image.onclick = function(){
*create overlay*
overlay.onclick = function() {*remove overlay*};
};
thnx everyone! – Sam
- 1. Czy obiekt może się sam usunąć? W jaki sposób?
- 2. Menu kontekstowe jQuery - znajdowanie elementu, który go wyzwoliło
- 3. Usuwanie plików, który ma ten sam przedrostek
- 4. Tworzenie środkowego elementu, który utknie w nagłówku (ScrollView/ListView)
- 5. Usunąć plik lub go zarchiwizować?
- 6. MSMQ nie może usunąć lub usunąć kolejki
- 7. Jak utworzyć podstawowy typ C++, który sam się inicjuje?
- 8. Tworzenie kompilatora Go domyślnie int64
- 9. najczystszym sposobem indeksowania Collection przez właściwość elementu, który sam w sobie jest zbiorem
- 10. Tworzenie suwak pionowy HTML elementu
- 11. usunąć/przywrócić odziedziczone css z elementu
- 12. Jak sprawdzić istnienie obiektu serwera sql i go usunąć?
- 13. Czy ACRA może być używana w projekcie bibliotecznym? Sam
- 14. Tworzenie elementu listy (HTML/CSS)
- 15. Jak usunąć element, który dodaje dynamicznie javascript
- 16. Tworzenie elementu DataFrame Spark z zagnieżdżonego słownika
- 17. jak usunąć każdy styl z elementu?
- 18. JQuery fadeIn() na tworzenie elementu DOM?
- 19. Korzystanie ścieżkę ciąg usunąć elementu z tablicy
- 20. Tworzenie liniowego przezroczystego gradientu do elementu div
- 21. Znajdź div wewnątrz div i go usunąć?
- 22. Tworzenie nowego elementu programowo w Umbraco
- 23. Tworzenie String za pomocą ciągu (char), ale uzyskanie wartości opcjonalnej z tym, jak go usunąć?
- 24. tworzenie tylko fragment HTML i odesłanie go
- 25. Tworzenie strumienia FILE *, który powoduje ciąg znaków
- 26. Funkcja który ogólnie zajmuje typu i zwraca ten sam typ
- 27. Znajdź wszystkie pliki w katalogu, który sam nie jest katalogiem.
- 28. Dlaczego Bower usunąć moje "uchwał" i jak mogę go zatrzymać
- 29. Jak usunąć właściwość z elementu, który został dodany przy użyciu jquery
- 30. Odniesienie do elementu przez ID sam, bez document.getElementById
Zgadza się, nie możesz. Ustaw haczyk po dołączeniu go do ciała. Również twoje pytanie może skorzystać z kodu i przykładów tego, co próbujesz, i co dokładnie dzieje się źle. – Dave
Czy możesz opublikować bieżące dane wyjściowe HTML i skryptu, aby utworzyć nakładkę. Może możemy dodać 'setTimeout', jeśli chcesz go usunąć automatycznie na podstawie pewnego czasu, jeśli jest to wykonalne lub możemy dodać wydarzenie do elementu nadrzędnego, aby go usunąć. Byłoby jednak znacznie łatwiej z odpowiednim kodem. – Nope