I'm not positive, but I think your overriding the append handler itself because it triggers your function without doing the append.
Try something like the following (I fixed the object1 name in the append itself, too). "this" should have the object being appended here.
var list = $$({}, '<div><a href="">click</a></div>', {
'click a': function(){
var object1 = $$({}, '<b>test</b>');
this.append(object1);
},
'pre:appended': function(e) { // can be pre: or post:
console.log( e );
console.log( this );
}
});
Here's the applicable code from agility.js that implements that tigger:
// Triggered after child obj is appended to container
_append: function(event, obj, selector){
obj.trigger('pre:appended');
this.view.$(selector).append(obj.view.$());
obj.trigger('post:appended');
},