Hello Shiva,
try to modify your function like this:
map(bind(function(elem) { connect(elem, 'onclick', this,
'onItemClick'); }, this),
getElementsByTagAndClassName("tr", "ddRow", "newTable")
);
Giulio Cesare
On 8/24/07, Shiva KM <[EMAIL PROTECTED]> wrote:
>
> 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
-~----------~----~----~----~------~----~------~--~---