Observing 'click' event on <a> tag generated by scriptaculous Builder
- by bratsche
I'm using scriptaculous Builder to generate some DOM elements dynamically, and one of them is a link tag. I wasn't sure how to generate this with the click callback inline along with the rest of the Builder code, so I'm generating the link tag ahead of time and then inserting it with the rest of the Builder phase.
The problem is that the callback for the link is never actually executed when I click the link, and the URL bar changes to http://localhost/foo/bar/# instead. The callback method is a part of my class, so I'm binding it as an event listener ahead of time.
var Foo = Class.create ({
initialize: function () {
this.closeBinding = this.doClose.bindAsEventListener (this);
},
generate: function () {
/* Create the link and bind the click listener */
var close_link = Builder.node ('a', { href: '#' }, 'Close');
Event.observe (close_link, 'click', this.closeBinding);
/* Generate the new DOM nodes */
return Builder.node ('div', [
Builder.node ('h2', 'This is a test'),
close_link
]);
},
doClose: function (evt) {
/* This code is never called when I click the link. */
}
});