Visualizzazione dei risultati da 1 a 6 su 6

Hybrid View

  1. #1
    Ciao Andrea,
    e grazie per la risposta.

    Per quanto riguarda l'evento io l'ho visto utilizzare associato al documento, per esempio qui... ma forse solo nel caso di Jquery Mobile. Che ne pensi?

    Quello che non avevo capito nel mio esempio è che this, quando viene associato un metodo a un evento, non rappresenta l'oggetto, ma il contesto a cui viene attaccato l'evento. Pertanto non è possibile utilizzare altri metodi tramite l'uso di this.altroMetodo, perché giustamente non viene trovato. La soluzione è, usando bind, specificare il contesto di this, così:

    $("body").on("click", this.mioMetodo.bind(this));

    e dentro a mioMetodo posso utilizzare this come referenza dell'oggetto.
    Inoltre ho visto anche bypassare questo "problema" utilizzando una variabile all'interno della funzione che rappresenta this. Così:

    codice:
    function People (nome){
       this.nome = nome;
       var that = this;
       $("body").on("click", function(){
          console.log(that.nome);
       });
    }
    var pippo = new People("pippo");
    Quale dici sia la soluzione migliore?
    grazie!!

  2. #2
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Quote Originariamente inviata da zoc Visualizza il messaggio
    Ciao Andrea,
    e grazie per la risposta.

    Per quanto riguarda l'evento io l'ho visto utilizzare associato al documento, per esempio qui... ma forse solo nel caso di Jquery Mobile. Che ne pensi?
    Che sul sito di jquery non ne parlano e non ci sono esempi, ma che basta provare se funziona ok
    Quello che non avevo capito nel mio esempio è che this, quando viene associato un metodo a un evento, non rappresenta l'oggetto, ma il contesto a cui viene attaccato l'evento. Pertanto non è possibile utilizzare altri metodi tramite l'uso di this.altroMetodo, perché giustamente non viene trovato. La soluzione è, usando bind, specificare il contesto di this, così:

    $("body").on("click", this.mioMetodo.bind(this));

    e dentro a mioMetodo posso utilizzare this come referenza dell'oggetto.
    Inoltre ho visto anche bypassare questo "problema" utilizzando una variabile all'interno della funzione che rappresenta this. Così:

    codice:
    function People (nome){
       this.nome = nome;
       var that = this;
       $("body").on("click", function(){
          console.log(that.nome);
       });
    }
    var pippo = new People("pippo");
    Quale dici sia la soluzione migliore?
    grazie!!
    Non conosco la programmazione ad oggetti (sempre che di questo si tratti) ed essendo autodidatta, il mio credo è se funziona va bene altrimenti no
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

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 © 2026 vBulletin Solutions, Inc. All rights reserved.