Hallo liebe Gemeinde 
ich stoße grade auf ein IMHO komisches problem - vielleicht liegts auch nur daran das es gerade so spät ist, ... folgendes:
Ich lade content per $.ajax(); - diese funktion ist in einer weiteren funktion definiert, damit ich mir einiges an tipparbeit spare.. auszug:
Zum Problem:
Die ajaxRequest-Funktion wird innerhalb $(document).ready(); aufgerufen sobald ich auf den entsprechenden menüpunkt klicke, die action.write.js wird nachgeladen, sobald der container #saveArticle auch geladen wurde,... soweit alles ok, alert test1 wird ausgegeben, meine funktion wird aufgerufen, alert test2 wird ausgegeben..
alles prima beim ersten aufruf! ok, ich klicke also in einem menüpunkt herum, und lade weiteren content per ajax, klicke ich nun wieder auf den menüpunkt, der mir auch die action.write.js laden soll, wird NUR alert test1 ausgegeben..test2 nicht.. drücke ich f5, ist wieder alles in ordnung.. also wird meine funktion innerhalb der action.write.js nur beim ersten request der hauptseite ausgeführt..
firebug zeigt mir auch keine fehlermeldung wie z.b. das do_action_write(); undefined seie.. das komische daran ist, die getscript funktion lädt laut firebug erfolgreich den code, jedoch wird die funktion nur einmal aufgerufen..
liegt es vllt. daran, dass die action.write.js beim 2. aufruf doppelt geladen wird und die funktionen sich überschreiben? - aber das kann auch nicht sein, weil ich den code der js-datei vorher im <script>-Tag der zu ladenden html datei stehen hatte, jedoch ist mir die getScript-Variante sympatischer
habe schon mehrere versuche gemacht, wie z.b. eine evalScript-Funktion, den code direkt per $.ajax & dataType: script laden usw.. hilft alles nichts, überall das selbe problem, dass meine funktion nur EINMAL ausgeführt wird, obwohl ich sie erst NACH dem ajaxRequest ausführen möchte... -.-
hatte ebenfalls schon http://www.php.de/javascript-ajax-un...-werten-2.html gelesen, jedoch betrachte ich diese variante als schwachsinnig, denn async sollte schon true sein...
danke schonmal

ich stoße grade auf ein IMHO komisches problem - vielleicht liegts auch nur daran das es gerade so spät ist, ... folgendes:
Ich lade content per $.ajax(); - diese funktion ist in einer weiteren funktion definiert, damit ich mir einiges an tipparbeit spare.. auszug:
Code:
function ajaxRequest(url, responseContainer, data, type){ // show ajax loading indicator etc.. $.ajax({ type: 'post', url: url, data: data, cache:true, dataType: type, success: function(html){ if(html){ if(responseContainer=='#bc-content'){ $(responseContainer).html('<ul id="column1" class="column ui-sortable">'+html+'</ul>'); // check if dom elements loaded if($('#saveArticle').length){ $.getScript('/adata/js/action.write.js', function() { if(typeof do_action_write == 'function'){ alert('test1') do_action_write(); alert('test2'); } }); } } } } // disable ajax loading indicator ... }); }
Die ajaxRequest-Funktion wird innerhalb $(document).ready(); aufgerufen sobald ich auf den entsprechenden menüpunkt klicke, die action.write.js wird nachgeladen, sobald der container #saveArticle auch geladen wurde,... soweit alles ok, alert test1 wird ausgegeben, meine funktion wird aufgerufen, alert test2 wird ausgegeben..
alles prima beim ersten aufruf! ok, ich klicke also in einem menüpunkt herum, und lade weiteren content per ajax, klicke ich nun wieder auf den menüpunkt, der mir auch die action.write.js laden soll, wird NUR alert test1 ausgegeben..test2 nicht.. drücke ich f5, ist wieder alles in ordnung.. also wird meine funktion innerhalb der action.write.js nur beim ersten request der hauptseite ausgeführt..
firebug zeigt mir auch keine fehlermeldung wie z.b. das do_action_write(); undefined seie.. das komische daran ist, die getscript funktion lädt laut firebug erfolgreich den code, jedoch wird die funktion nur einmal aufgerufen..
liegt es vllt. daran, dass die action.write.js beim 2. aufruf doppelt geladen wird und die funktionen sich überschreiben? - aber das kann auch nicht sein, weil ich den code der js-datei vorher im <script>-Tag der zu ladenden html datei stehen hatte, jedoch ist mir die getScript-Variante sympatischer

habe schon mehrere versuche gemacht, wie z.b. eine evalScript-Funktion, den code direkt per $.ajax & dataType: script laden usw.. hilft alles nichts, überall das selbe problem, dass meine funktion nur EINMAL ausgeführt wird, obwohl ich sie erst NACH dem ajaxRequest ausführen möchte... -.-
hatte ebenfalls schon http://www.php.de/javascript-ajax-un...-werten-2.html gelesen, jedoch betrachte ich diese variante als schwachsinnig, denn async sollte schon true sein...
danke schonmal
Kommentar