I'm having a little problem with this setup here I have a list of .ascx
files and they all do different tasks in terms of calculations to the controller itself. So on my .aspx
page I click on an Ajax.ActionLink()
and this will render that specific .ascx
file based on the item I clicked. Within that .ascx
are 1-3 events that will fire 2 of them are onclick
events and 1 is onload
. The onclick
event(s) are easier to work with in terms of I can hardcode it directly in the controls event like so onclick="$("#toggleMe3").slideToggle("slow");"
and the onload
must run when the .ascx
is loaded i was testing this in a $(document).ready(function(){});
call, this works fine in the .aspx
page but as soon as I try adding it into the .aspx
page it doesn't load and its ideal that this works but I have no idea why not. In fact nothing in the script tags work if I insert directly into the .ascx
page they only work if hardcoded into the control's events, well some of them at least; the onload
and onprerender
don't fire.
views:
1838answers:
2
+1
A:
I've had success using $(document).ready in my partials that get loaded via XHR. Are the views that you're loading via XHR throwing JavaScript exceptions? Or do they contain malformed HTML?
I typically have my $(document).ready method at the bottom of my partial that I load via Ajax, like...
<script type="text/javascript">
$(document).ready(function(){ callMyFunction(); });
</script>
michaeldelorenzo
2009-05-12 18:53:19
Unfortunately this doesn't work for me, I added the script tags to the bottom still no luck. I'm using MicrosoftAjax.js to control the Ajax calls and not the jquery ajax function.
Ayo
2009-05-12 19:11:29
This works for me, at least in FF3.5 and IE7 on Windows XP. However I do not understand why, as the jQuery documention doesn't handle this case...
o_o
2009-10-09 07:22:50
it worked for me on chrome
mnml
2009-11-05 08:57:48
+1
A:
I had a hard time understanding your question...but here it goes.
If you are loading date using AJAX calls, the $(document).ready() event will not fire -- because the page was already loaded. You are just loading more data now.
If you already know the controls what will apear, pre-load the JavaScript, but instead of just binding using the click event handler, use the live handler.
so
$("#myControl").click(....);
turns into
$("#myControl").live("click", ....);
Sorry if this isn't what you were looking for.
Chris Brandsma
2009-05-12 19:13:45
if the page is not dynamically loaded, yes. Otherwise you need the live to preload the event handlers from the aspx.Otherwise you will have to add some more hooks on the client side to know when the content is loaded, and the call the loaded javascript.
Chris Brandsma
2009-05-12 21:48:50