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 -

