Hi,

If its just an event(mouseover) you dont have to do this inline and
shouldnt, just set up the eventlistener against the id/position in the
dom.


On Mar 27, 1:14 pm, Amit Shah <[email protected]> wrote:
> 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