tags:

views:

24

answers:

1

In browsing a JavaScript file, I see the following line:

this.close = new Element('a', {id:'close-btn', href: 'javascript:void(0);', 'class': this.typeprefix + '-deletebutton', events: {click: this.remove.bind(this)}}).inject(this.bit);

I'm guessing that new Element() is a MooTools extended element. I can't seem to programmatically fire the MooTool's click event.

I tried

document.getElementById('close-btn').onclick.apply(document.getElementById('close-btn'));

but nothing happened. Each of the following lines below gave me an undefined:

alert(document.getElementById('close-btn').click);
alert(document.getElementById('close-btn').onclick);
alert(document.getElementById('close-btn').events);
alert(document.getElementById('close-btn').['events']);

Anyone have any ideas on how to programmatically fire the anchor's click event?

A: 
var evObj = document.createEvent('MouseEvents');
evObj.initMouseEvent(
    'click', true, true, window,
    1, 0, 0, 0, 0,
    false, false, true, false,
    0, null
);
document.getElementById('close-btn').dispatchEvent(evObj);

https://developer.mozilla.org/en/DOM/event.initMouseEvent

For IE you may try document.getElementById('close-btn').click(); or document.getElementById('close-btn').fireEvent("onclick");