I’m creating a simple jQuery editor, nothing complicated, and just can’t seem to find out why the events do not work. See code below.
var $editor = $('<div>').addClass('editor')
.insertBefore(this.$element)
.append(this.$element);
var $b = $('<div>').addClass('button-wrapper')
.appendTo($editor);
this.$element.css({height:this.opts.height,width:this.opts.width});
//Load up each button.
$.each(this.opts.buttons.split(' '), function(i, button)
{
//If its an empty string keep going.
if(button == '')return true;
//Generate a button.
$('<div>').data('buttonName', button)
.addClass(button.toLowerCase())
.click(clicked)
.hover(hover, hover)
.appendTo($b);
});
To go over it, simply, $element represents the textarea that I am using as the base element, $b represents the button wrapper, and $editor is the div to wrap around all of these things. When I append the buttons to $editor none of the events fire, however, when I append to document.body it works perfectly fine. For the record, the event clicked and hover are nothing special, just testers to see if the events are working.
I’ve rewritten your code a little bit, just to figure out what you’re doing. This seems to work for me, unless I didn’t understand what the problem is that you’re describing. The buttons react to hover as well as click events. Aside from writing the things you’re doing differently, there’s no substantial change in the code.
I suppose there’s a chance that Val was right in that there may be other elements overlaying your buttons. You haven’t shown us your CSS, so it’s hard to tell what’s going on on your side.