JavaScript onClick does not work in Firefox

I have a confirmation popup that opens when a user clicks on this link:

<a onClick="openPopup('#popup1')">foo</a>

here is the relevant JavaScript:

function openPopup(id) {

   $(id).show();
   event.preventDefault();
   $(id).addClass('is-visible');
   $(id).css("z-index", "999999999999999999999999");

}

In Safari and Chrome it works fine. In Firefox, however, the trigger does not seem to work. Any ideas why?

I already tried to change the link like so:

 <a href="javascript:openPopup('#popup1');">foo</a>

no changes though. thanks for your help!

Answers:

Answer

In Firefox, however, the trigger does not seem to work. Any ideas why?

Firefox does not make the event object global. You have to pass it along to the event handler, e.g.

onClick="openPopup('#popup1', event)"

Since you are using jQuery, you should bind the handler with jQuery so that you can also use jQuery's augmented event object.

Answer

I think what you might be experiencing is a problem with the uppercase C in onClick. Try changing it to onclick (all lowercase).

See this question: onclick or onClick?

Also you may have trouble accessing the event object: Access global event object in Firefox

But it the case of your example I don't think you will need it.

event.preventDefault prevents the browser trying to follow a href of a link when it is clicked (you don't have an href in your example). If the link gets followed, and your browser navigates to another page you will not get a chance to see any error that may have happened and it can be very frustrating to work out what is going on, so if you do need to use event.preventDefault make sure it is on the first line of the function it is in

Tags

Recent Questions

Top Questions

Home Tags Terms of Service Privacy Policy DMCA Contact Us Javascript

©2020 All rights reserved.