Dort selektiere ich mir dann per id ein HTML-Element und rufe ne JS-Funktion auf, die mir verschiedene Events auf das Element legt. Diese Funktion soll aber gar nicht aufgerufen werden wenn der Request false zurückgibt.
Im Moment würdest du im onSuccess-Fall quasi Folgendes machen (wenn es denn funktionieren würde, was es wegen der Asynchronität nicht tut)):
onSuccess:
return true;
variable = onSuccess()
if variable then
funktion()
Zusammengefasst:
if true then
funktion()
Die if-Geschichte ist so gesehen vollkommen unsinnig; das Ergebnis true bzw. die Bedingung für dein if hast du bereits alleine dadurch, dass onSuccess aufgerufen wird – und deshalb gehört deine Funktion auch genau da rein, in das onSuccess-Ereignis:
onSuccess:
Funktion()
Du musst nicht in onSuccess eine Extra-Variable mit true (bzw. dem HTML-Code aus dem AJAX-Aufruf) füllen, nur, um diese gleich darauf zu prüfen und die Funktion aufzurufen.
In deinem Kontext sieht das ungefähr so aus:
if($chk($('availbility_check'))){
get_availability("text")
}
var get_availability = function(option){
var sendstring = 'herstellernummer1='+herstellernummer1+'&brandNo='+brandNo;var req = new Request({url:'html/avail.php',methode:'post',
onSuccess: function(html){
!!! if(html.contains('_none') || html.contains('_half')){
!!! set_avail_check_events();
!!! }
}
});
req.send(sendstring);
});
Der Name get_availability() ist jetzt natürlich irreführend, die Funktion holt nichts mehr, sie lässt eine Aktion im Erfolgsfall ausführen.