BigMan157 no u 103354 Posts user info edit post |
ok, so i have this function called doThis()
i'm trying to attach it to an onclick event from within an instantiation of a prototype class and keep getting a "not defined" error or an "uncaught exception" error when i try to alert() instead.
something like:
var iThing = document.createElement('div'); iThing.id = "iThing"; iThing.onclick = function(){doThis();};
also tried:
var iThing = document.createElement('div'); iThing.id = "iThing"; iThing.onclick = "doThis();" var onClickHandler = new Function(iThing.onclick); if (iThing.addEventListener) { iThing.addEventListener('click', onClickHandler, false ); } else if (iThing.attachEvent) { iThing.attachEvent('onclick', onClickHandler); } else { iThing.onclick = function(){doThis();}; }
anyone have any idea what i should add or do? Everything i can think of to search for on the Goog hasn't helped at all7/31/2007 8:59:21 AM |
DirtyGreek All American 29309 Posts user info edit post |
for the uncaught exception, attempt to catch it using a try/catch
http://www.quackit.com/javascript/tutorial/javascript_try_catch.cfm
and install firebug
http://addons.mozilla.org/firefox/addon/1843
it'll help you get the JS right 7/31/2007 10:26:06 AM |
BigMan157 no u 103354 Posts user info edit post |
yeah that doesn't really help 7/31/2007 1:50:16 PM |
BigMan157 no u 103354 Posts user info edit post |
i guess what i'm asking is how do I reference a function declared outside of a class
function doThis() {alert('hi');}
var AnObject = function (someVar) { this.Thing = someVar; }
AnObject.prototype.annoy = function () { doThis(); }
whatev = new AnObject(thingie); whatev.annoy();
[Edited on July 31, 2007 at 4:16 PM. Reason : this would cause a "doThis not defined" error message]7/31/2007 4:15:58 PM |
scanZero Veteran 265 Posts user info edit post |
I was bored and I threw your code into a file and it worked in firefox 2.0. I did have to change the assignment of whatev.
<html> <head> <script language="javascript"> function doThis() {alert('hi');}
var AnObject = function (someVar) { this.Thing = someVar; }
AnObject.prototype.annoy = function () { doThis(); }
whatev = new AnObject("test"); whatev.annoy();
</script> </head> <body> <a href="#" onclick="whatev.annoy();">test</a> </body> </html> 7/31/2007 10:12:19 PM |
BigMan157 no u 103354 Posts user info edit post |
i gave up, i think somewhere in all of my code i lost scope somewhere 8/1/2007 12:19:25 PM |