Hi all,
I'm using MochiKit 1.3.1. Oh, and I just tried this out in the
latest Mochikit from svn too.
I am trying to use map to loop through the rows in a table and using
"connect" to bind a function to the onclick event to each of the TRs.
However this throws an error - "funcOrStr' must be a function on
'objOrFunc".
After some debugging I found that the reference to the current object
(this) which I pass in has a different value when it gets inside
connect ( it refers to the window object, it looks like ). However, if
I replace the call to map with a for loop, it works fine.
However, I would really like to avoid using the for loop in the
interest of keeping the code as 'functional' as possible, plus I dont
really understand why the reference to "this" changes.
I've included the code below to reproduce the problem:
<html>
<head>
<script type="text/javascript" src="./scripts/MochiKit/
MochiKit.js"></script>
<script type='text/javascript'>
function SomeClass()
{
map(function(elem){
connect(elem, 'onclick', this,
'onItemClick');
},
getElementsByTagAndClassName("tr",
"ddRow", "newTable"));
/* var arr = getElementsByTagAndClassName("tr",
"ddRow",
"newTable");
for (var i = 0; i < arr.length; i++)
{
connect(arr[i], 'onclick', this,
'onItemClick');
}
*/
}
SomeClass.prototype.onItemClick = function()
{
alert("in item click!");
}
function body_OnLoad()
{
var x = new SomeClass();
}
</script>
</head>
<body onload="body_OnLoad()">
<table id="newTable">
<tr class="ddRow"><td>hello1</td></tr>
<tr class="ddRow"><td>hello2</td></tr>
<tr class="ddRow"><td>hello3</td></tr>
<tr class="ddRow"><td>hello4</td></tr>
<tr class="ddRow"><td>hello5</td></tr>
</table>
</body>
</html>
Cheers,
shiva
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"MochiKit" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at
http://groups.google.com/group/mochikit?hl=en
-~----------~----~----~----~------~----~------~--~---