slevinkelevra Δημοσ. 15 Ιουλίου 2014 Δημοσ. 15 Ιουλίου 2014 Καλησπερα Αν εχω καταλαβει καλα, το ajaxStart () ειναι πολυ γενικο και καλειται καθε φορα που γινεται ενα οποιοδηποτε ajax request σε μια σελιδα. Μπορω να παρω δεδομενα απο το ajaxStart () για το πιο συγκεκριμενο request εγινε? Για παραδειγμα εχω 2 request σε μια σελιδα. $.post('a.php', {term: $(this).text()} , function(data) { $('#showResultFromA').hide().html(data).fadeIn(12000); }) και $.post('b.php', {term: $(this).text()} , function(data) { $('#showResultFromB').hide().html(data).fadeIn(12000); }) Υπαρχουν 2 διαφορετικα divs που σχετιζονται με 2 διαφορετικα requests. Πως μπορω να χρησιμοποιησω την ajaxStart για να ξερω πιο request εγινε και να φορτωσω μια loadingImage.gif στο καταλληλο div? Προσπαθησα κατι σαν .ajaxStart(function() { alert($(this).url); }) αλλα μου δινει πισω undifined Καμια ιδεα? Thanks
defacer Δημοσ. 15 Ιουλίου 2014 Δημοσ. 15 Ιουλίου 2014 Με τις $.post/$.get και όπως το έχεις δε γίνεται, αλλά γίνεται με τη γενική $.ajax ή αλλάζοντας τα events που κάνεις target. Η πιο απλή μέθοδος (αν σου κάνει) είναι με $.ajax να δώσεις στα settings για το request global: false, οπότε κανένας από τους global ajax event handlers δε θα τρέξει γι' αυτό το request. Εναλλακτικά αν αντί για το ajaxStart event σου κάνει το ajaxSend (η διαφορά είναι ότι το δεύτερο κάνει fire για κάθε ένα request ξεχωριστά ενώ το πρώτο μόνο όταν γίνει request τη στιγμή που δεν υπάρχει κανένα άλλο request στον αέρα) τότε σ' αυτό ο handler παίρνει 3 παραμέτρους (event, xhr, options) και μπορείς να κάνεις ο,τι νομίζεις ψαχουλεύοντας στις 2 τελευταίες -- πχ στη δεύτερη για το URL όπως πας να κάνεις παραπάνω ή στα options για άλλες custom καταστάσεις (έχω γράψει σχετικά στο StackOverflow). 2
slevinkelevra Δημοσ. 15 Ιουλίου 2014 Μέλος Δημοσ. 15 Ιουλίου 2014 Thanks, τσιμπα και ενα upvote στο stackoverflow Χρησιμο και το ajaxSend Μπορω τωρα να εχω κατι σαν $(document).ready(function() { //ajax requests here }).ajaxStart(function() { alert("a request started"); }).ajaxSend(function(e,xhr,opt) {alert("...and goes to this URL : "+opt.url)} ) ;
Προτεινόμενες αναρτήσεις
Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε
Πρέπει να είστε μέλος για να αφήσετε σχόλιο
Δημιουργία λογαριασμού
Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!
Δημιουργία νέου λογαριασμούΣύνδεση
Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.
Συνδεθείτε τώρα