thanks mkmanning,
but i do not using jquery now, i using prototype now.
anyway i have moved the script to main page. will try another time.

On Mar 27, 1:42 am, mkmanning <[email protected]> wrote:
> Did you try my suggestion?
> ------------------------------------------------------------------
> Put this div in your main page:
> <div id="test"></div>
> ------------------------------------------------------------------
> Put this script in your main page (essentially what you have already,
> fix the url for your server):
> $(document).ready(function(){
>          $.ajax({
>                          type:"GET",
>                          url:"/testajax.html",
>                          dataType: "html",
>                          success:
>                                          function(data, status)
>                                          {
>                                                           
> $('#test').html(data);
>                                          }
>                         });
>
> });
>
> ------------------------------------------------------------------
> Put this in your ajax response (call it testajax.html or whatever
> you're calling):
> <script type="text/javascript">
> function sometesting(){
>         alert('this works');}
>
> //attach event with jQuery, even though there's no 'jQuery'
> //on this page (it will inherit from the page it's injected in)
> $('#tdtest').mouseover(sometesting);
> </script>
>
> <table>
>         <tbody>
>                 <tr><td onmouseover="sometesting();">Inline (bad practice) 
> works</
> td></tr>
>                 <tr><td id="tdtest">Attached with jQuery (good practice) 
> works</td></
> tr>
>         </tbody>
> </table>
> ------------------------------------------------------------------
>
> So there's a function in the response ajax called sometesting(). It's
> called in two ways:
> by an inline mouseover, and by a jQuery selector (take your pick)--
> both methods are on the ajax page.
>
> No higher power need be invoked.
>
> On Mar 26, 12:53 pm, Amit Shah <[email protected]> wrote:
>
> > oh god.
>
> > i got a function sometesting() in the ajax response text ok? not in
> > calling main page. it's in response html data from ajax.
> > in response there is a table. in table there is a td and on td
> > mouseover event i call that function to highlight some fields.
>
> > now the function cam from response text. ok? read properly, the
> > response text is cam in main page div tag now.
> > if i call the function from main page anywhere it works.
> > but the actual even that is on mouse over of that td in response text
> > it don't works. it says not define.
>
> > now ?
>
> > On Mar 27, 12:10 am, James <[email protected]> wrote:
>
> > > What do you mean? Could you provide an example of the content of your
> > > response and what you want to do with it?
>
> > > You cannot call a function from inside the response html data before
> > > it reaches the browser. It has to reach the browser first because the
> > > browser does the Javascript work. If you want to do it before then,
> > > you'd have to do it server-side before sending the response.
>
> > > On Mar 26, 2:14 am, Amit Shah <[email protected]> wrote:
>
> > > > you didn't get it.
> > > > i mean the function written in response text. which has be evaluated.
> > > > can be called only from the main script. not from inside the responsed
> > > > html data.
>
> > > > On Mar 24, 8:07 pm, mkmanning <[email protected]> wrote:
>
> > > > > If you're going to use jQuery, you have to be careful about writing
> > > > > code that then doesn't use jQuery. In this case, you're ajax call
> > > > > would have worked fine, if you had stuck with injecting the response
> > > > > into the DOM with jQuery, as it automatically evals scripts in a
> > > > > response with dataType of 'html'.
>
> > > > > Change:
> > > > > contentDiv.innerHTML = data
>
> > > > > to (with the appropriate selector for your div):
> > > > >  $('div').html(data);
>
> > > > > On Mar 24, 3:44 am, Amit Shah <[email protected]> wrote:
>
> > > > > > it's not working.
>
> > > > > > well eval(responseText); don't works.
>
> > > > > > cells = divResult.getElementsByTagName("script");
> > > > > >                         alert(cells.length);
> > > > > >                         for (var i = 0; i < cells.length; i++)
> > > > > >                         {
> > > > > >                                 alert(cells[i].innerHTML);
> > > > > >                             eval(cells[i].innerHTML);
> > > > > >                     }
> > > > > >                     sometesting(5);
>
> > > > > > is working.
> > > > > > but when the function sometesting() being called somewhere from
> > > > > > ajaxresponse text, browser gives error. both ie and firefox.
>
> > > > > > On Mar 15, 7:47 am, NightWatchman <[email protected]> wrote:
>
> > > > > > > To execute javascript code returned by the server you need to use 
> > > > > > > the
> > > > > > > javascript eval function on the string of script returned from the
> > > > > > > server. As far as I know changing the content of a div to a 
> > > > > > > javascript
> > > > > > > block won't cause that javascript code to execute.
>
> > > > > > > I think you need to change:
>
> > > > > > > contentDiv.innerHTML = data;
>
> > > > > > > to
>
> > > > > > > eval(data);
>
> > > > > > > On Mar 14, 3:12 pm, Foreigner <[email protected]> wrote:
>
> > > > > > > > Hi,
> > > > > > > > I'm trying to use jQuery to get some HTML with Javascript using 
> > > > > > > > AJAX.
> > > > > > > > My response gets inserted into the contentDiv element but my
> > > > > > > > javascript inside the response doesn't get executed as the
> > > > > > > > documentation says (http://docs.jquery.com/
> > > > > > > > Specifying_the_Data_Type_for_AJAX_Requests).
>
> > > > > > > > Here goes my function with AJAX call:
>
> > > > > > > > function loadHtml(obj)
> > > > > > > > {
> > > > > > > >         if(obj.className == "menuItem")
> > > > > > > >         {
> > > > > > > >                 $.ajax({
> > > > > > > >                                  type:"GET",
> > > > > > > >                                  url:"content/" + obj.id + 
> > > > > > > > ".html",
> > > > > > > >                                  dataType: "html",
> > > > > > > >                                  success:
> > > > > > > >                                          function(data, status)
> > > > > > > >                                          {
> > > > > > > >                                                   
> > > > > > > > contentDiv.innerHTML = data;
> > > > > > > >                                          }
> > > > > > > >                                 });
> > > > > > > >         }
>
> > > > > > > > }
>
> > > > > > > > My response looks like:
>
> > > > > > > > <h3>Some heading</h3>
> > > > > > > > <script type="text/javascript">
>
> > > > > > > > //Some javascript code
>
> > > > > > > > </script>- Hide quoted text -
>
> > > - Show quoted text -

Reply via email to