Search code examples
jquerymagentoprototypejslightboxdom-events

Does calling `click()` in jQuery only trigger jQuery attached events?


I have a Magento site, which includes the prototype JavaScript library.

Some time ago, I added jQuery as well.

Before that however, I'd included a prototype based Lightbox. It was triggered by adding the attribute rel="lightbox[gallery]".

Now I'd like to make a lightbox appear on page load. I know nothing about prototype, so I tried creating a hidden link with jQuery and then calling $('#special').click() but to no avail. If I actually click the link however, it works fine.

All my jQuery code is in a function like so

jQuery.noConflict();
jQuery(function($) {
 // Now I can use $ in here... :)

});

So does jQuery's click() only trigger events that jQuery has binded? If so, how could I call the click event or trigger the lightbox in prototype?


Solution

  • So does jQuery's click() only trigger events that jQuery has binded?

    It will also trigger events bound via old-style onEventName attributes. But it won't trigger events bound via addEventListener() or attachEvent() (which, AFAIK, are what Prototype uses to bind events...)

    However, you can simulate an actual click event. It'll just take a bit more effort...

    See: How can I simulate a click to an anchor tag?

    See also: Trigger an event with Prototype