It's not Prototype's problem. IE doesn't pass the event object to the
handler function like Firefox (or pretty much any other browser).
You can get around it in a couple of ways:
1. Check for the event object at the top of your function, if it's
not there, grab window.event.
function (evt) {
if (!evt) {evt = window.event;}
// Do stuff
}
2. Use Prototype's bindAsEventListener function, which ensures the
event object is always passed to the handler.
Behaviour.register({
'div': function(element) { element.onclick =
show_clicked.bindAsEventListener(element); }
});
On Aug 9, 2006, at 6:38 AM, Tim Bellinghausen wrote:
Hi *,
I have a problem with the prototype Event class and the Internet
Explorer. The page is just some positioned divs and a p for debugging
output. (It is used just for understanding some other IE difficulties)
The javascript code used is the following:
function show_clicked(event) {
$('DEBUG').innerHTML += Event.element(event).id+" clicked<br /
>";
}
Behaviour.register({
'div': function(element) { element.onclick = show_clicked }
});
Everything is fine in Firefox, but if I try this in IE it gives an
error, when clicking on any div. The error message is "'target' is
null
or not an object" and refers to the following line in prototype.js;
element: function(event) {
return event.target || event.srcElement;
},
Inside the Event class. Has anybody a solution to this problem or at
least an explanation, why this happens.
Greets, Tim
_______________________________________________
Rails-spinoffs mailing list
Rails-spinoffs@lists.rubyonrails.org
http://lists.rubyonrails.org/mailman/listinfo/rails-spinoffs
_______________________________________________
Rails-spinoffs mailing list
Rails-spinoffs@lists.rubyonrails.org
http://lists.rubyonrails.org/mailman/listinfo/rails-spinoffs