Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it L'avatar di the-bit
    Registrato dal
    Feb 2005
    Messaggi
    543

    Cos'è e come usare una "callback function" ?

    Buona sera,
    non conosco molto bene JS, diciamo che lo sto imparando strada facendo.
    Ho scaricato un utilisso plugin jQuery per la modifica di campi "in place".
    Il plugin in questione si chiama Another In-Place Editor ed è scaricabile dalla pagina ufficiale.
    Il problema è che la documentazione non è dettagliata, anzi, sembra non esistere nemmeno se non un listato delle funzioni che questo script può avere.
    Vorrei capire, ad esempio, a cosa serve e quando usare una callback function.

    In uno degli esempi presenti sul sito ho visto un utilizzo del genere:
    codice:
    $("#editme1").editInPlace({
    		callback: function(unused, enteredText) { return enteredText; },
    		// url: './server.php',
    		show_buttons: true
    	});
    A intuito sembrerebbe che questa istruzione non fa altro che visualizzare il nuovo testo dopo aver modificato il campo.

    Potreste darmi qualche dritta?
    Grazie.
    "To iterate is human, to recurse, divine." (R.(Heller))

  2. #2
    Utente di HTML.it L'avatar di m4rko80
    Registrato dal
    Aug 2008
    residenza
    Milano
    Messaggi
    2,655
    la funzione di calback viene di solito eseguita quando l'azione principale ha completato l'esecuzione.
    Qui cmq c'e' tutto http://jquery.com/

  3. #3
    Utente di HTML.it L'avatar di the-bit
    Registrato dal
    Feb 2005
    Messaggi
    543
    Ho dato un'occhiata anche su google ed ho ritrovato la spiegazione che mi hai dato tu.
    Il problema, però, è che non riesco a usare il plugin in questione.
    Un uso corretto dovrebbe essere, secondo l'esempio presente sul sito del produttore e che ho postato anche in questo thread, questo:
    codice:
    			$(document).ready(function() 
    			{
    				 $("#editable").editInPlace(
    				{
    					url: "editMyHome.php",
    					callback: function(unused, enteredText) {return enteredText;},
    					value_required: true,
    					show_buttons: true
    				});
    			});
    Se utilizzo questo codice, mi viene visualizzato il testo modificato non appena clicco sul tasto "save". Ma se ricarico la pagina il valore è rimasto uguale. Di fatti, ripetendo l'operazione con FireBug aperto, non avviene alcuna chiamata POST.
    Se, invece, utilizzo questo codice, adattato da me (in cui ho solo ridefinito il "default_text") sembra funzionare:
    codice:
    			$(document).ready(function() 
    			{
    				 $("#editable).editInPlace(
    				{
    					url: "editMyHome.php",
    					value_required: true,
    					default_text: function(unused, enteredText) {return enteredText;},
    					show_buttons: true
    				});
    			});
    Vorrei sapere se, scritto in questo modo, è giusto e va bene.
    Grazie.
    "To iterate is human, to recurse, divine." (R.(Heller))

  4. #4
    Utente di HTML.it L'avatar di the-bit
    Registrato dal
    Feb 2005
    Messaggi
    543
    Nessun parere?
    "To iterate is human, to recurse, divine." (R.(Heller))

  5. #5
    Utente di HTML.it
    Registrato dal
    Dec 2010
    Messaggi
    3,660
    Ti riporto quanto scritto sul sito ufficiale:

    callback (function) default: null function to be called when editing is complete; cancels ajax submission to the url param
    // All examples use the commit to function interface for ease of demonstration.
    // If you want to try it against a server, just comment the callback: and
    // uncomment the url: lines.
    Come vedi è corretto eliminare la callback se devi effettuare una chiamata ajax

  6. #6
    Utente di HTML.it L'avatar di the-bit
    Registrato dal
    Feb 2005
    Messaggi
    543
    Grazie mille per la dritta!
    "To iterate is human, to recurse, divine." (R.(Heller))

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.