You should have a little more in that onSuccess method:
first, you need to set evalScripts to false in the Request options, then

handleResponse: function(response){
 var responseScript = "";
this.response.text.stripScripts(function(script){ responseScript += script;
});
 editVenueBox.set('html', responseHtml);
$exec(responseScript);
}

2009/9/25 Fábio M. Costa <[email protected]>

> I understand it, i had passed thought it before.
> The problem here is that the javascript is evaluated before the update is
> done, so you dont have the popup on the DOM and cant addEvents to it. Theres
> a way to do it, i dont like it but i'll show you as its the only i got.
>
> var editVenueBox = $('edit_venue_box');
> new Request.HTML({
>   url: '/admin/venue/' + venue_id,
>   evalScripts: false,
>   onSuccess: function(responseTree, responseElements, responseHtml,
> responseJs){
>     editVenueBox.set('html', responseHtml);
>     $exec(responseJs);
>   }
> }).send();
>
> Did you get it? Still i dont know why its done like this, shouldn't the
> order be changed (to the core-devs)?
>
>
> --
> Fábio Miranda Costa
> Solucione Sistemas
> Engenheiro de interface
>
>
>
> On Fri, Sep 25, 2009 at 3:06 PM, Pedro Moreira <[email protected]>wrote:
>
>>
>> Hello everyone,
>>
>> I've been working on a really fun project but today something got on
>> my nerves. I searched for some solutions but none worked for me. I
>> even found one post somewhere with something similar:
>> http://www.mooforum.net/general12/domready-after-request-html-t1743.html
>>
>> So... There's a page with a bunch of rows on a table and each row as a
>> link "edit". On that page I add an event to each link when the user
>> clicks on it. This event makes a Request.HTML and the html response
>> will be set by the update option on a lightbox-like div, a better
>> looking pop up window. On this new page I have some input fields and
>> an input button which I want to be able to click to trigger an event
>> (a request to save the input fields).
>>
>> Problem is: I can't add events on the pop up window!
>>
>> Code-wise:
>> page.php
>> ...
>>            window.addEvent('domready', function()
>>            {
>>                ...
>>
>>                $each($$('a.edit_venue_link'), function(item)
>>                {
>>                    item.addEvent('click', function()
>>                    {
>>                        var venue_id = item.get('venue_id');
>>
>>                        new Request.HTML(
>>                        {
>>                            url: '/admin/venue/' + venue_id,
>>                            update: 'edit_venue_box'
>>                        }).send();
>>                    }
>>                    );
>>                }
>>                );
>> ...
>>
>>
>>
>> /admin/view/:num (it's a controller which triggers a view with...)
>> ...
>> <script>
>>
>>    window.addEvent('domready', function()
>>    {
>>        alert($('submit_button').get('text'));
>>
>>        $('submit_button').addEvent('click', function()
>>        {
>>            alert('is it working?');
>>        });
>> ...
>>
>>
>> The alert with the submit_button text works but all the events I try
>> to add don't.
>>
>> Am I doing something wrong?
>>
>> I tried setting evalScripts true and false but it still doesn't work.
>> The solution on the link I wrote about doesn't work either...
>
>
>

Reply via email to