2012-06-01 8 views
5

Mam element listy z wydarzeniem onclick. Działa w przeglądarce Chrome i Internet Explorer, ale nie w Firefoksie. Jakieś sugestie?Dlaczego moje zdarzenie onclick nie jest zarejestrowane w Firefoksie?

<li onclick="alert('test');">test test<br></li> 
+1

Sprawdź, czy JavaScript jest wyłączony w przeglądarce Firefox? – Chandana

+0

inne zdarzenia javascript działa dobrze tylko onclick nie – hdayi

+0

nie powinieneś tak czy inaczej nadpisywać zdarzeń 'onclick' w swoim html. oddziel swoje obawy i połącz swoje wydarzenia w pliku skryptu. – Jason

Odpowiedz

3

Działa to dobrze dla mnie w Firefoksie.

Sprawdź to:

  1. jest włączona obsługa JavaScript w przeglądarce.

  2. Spróbuj dodać w swoim tekście instrukcję return false;.

lub funkcję tak:

function test() { 
    //your code here 
    return false; 
} 
  1. Albo użyj tego:

<a href="#" onclick="alert('hi');">Link</a>

czy to

<a href="javascript:void(0)" onclick="alert('hi');">Link</a>

+0

dziękuję bardzo. ostatnia sugestia zadziałała. Ale nie mogłem zrozumieć, dlaczego tylko zdarzenie onclick nie działa. Mousemove, out itp. Wszystko działa. i tak rozwiązany problem :) – hdayi

+1

Myślę, że Firefox potrzebuje zwrotu. Możesz również użyć przycisku, jeśli chcesz. –

+0

nie dotyczy pytania. – user1133275

0

Próbowałem zminimalizować mój kod HTML, aby wysłać kompletny kod symulujący błąd, o który poprosił Boris Zbarsky. Wtedy znalazłem swój błąd.

Używałem znacznika marquee, który jest przestarzały. Teraz mam zamiar użyć jQuery zamiast tego.

thx

+0

użyj https://validator.w3.org/, aby uniknąć dziwnych zachowań FF w ten sposób. – user1133275

0

W Firefox, the event object nie jest globalna. Musisz uzyskać do niego dostęp w tagach skryptu, a nie w HTML.

onclick prace lubi to

<li id="alert">test<br></li> 

<script> 
    document.getElementById("alert").addEventListener("click", function(event) { 
    alert('test'); 
    }, false); 
</script> 
+1

To nieprawda i nie ma już znaczenia dla pytania. – user1133275

+0

@ user1133275, jak napisać detektor zdarzeń? Czy napiszesz go w HTML jak pierwotnie proponowano? – daniella

+0

przykład w pytaniu jest prawidłowy.Która z poprawnych metod wybiera się w różnych kontekstach, jest osobistą preferencją, a zatem nie jest dobrym pytaniem o stackoverflow .... dobrze jest rozdzielać języki, więc ograniczenie wszystkich skryptów JavaScript do jednego pliku .js byłoby moim zaleceniem, nawet jeśli nie trzymaj się go osobiście. – user1133275