Visualizzazione dei risultati da 1 a 1 su 1
  1. #1

    js strict mode modificare vecchia funzione

    Buonasera a tutti,

    sto cercando di modificare una vecchia funzione e renderla compatibile con lo strict mode e con jquery 3.3, ma sto trovando parecchie difficoltà, sapreste darmi una mano?

    Una parte della vecchia funzione:

    codice:
    var num_modali = 0;
    
    _modale = function(){
            //setta il livello prendendolo dal numero attuale di modali aperte
            this.livello_m = num_modali;
            //setta il percorso
            this.percorso = function(){
                return (this.livello_m > 0) ? $('body').find('#modale_' + this.livello_m).find(modale_content) : $('body');
            };
            //setta le liste record
            this.listarecord = function(){
                return lista_record = (this.livello_m > 0) ? '#lista_records_modale' : '#lista_records';
            };
            //scala di un livello
            this._pre = function(){
                this.livello_m-- ;
                return this;
            };
            //restituisce il selettore
            this._go = function(){
                return this.percorso();
            };
    .......
    Una parte della nuova:

    codice:
    var num_modale = 0;
    
    
    var modale = {
        percorso: function(){
            return (modale.num_modali > 0) ? 'body #modale_' + modale.num_modali + ' .modale_content' : 'body';
        },
        listaRecord: function(){
            return (num_modali > 0) ? '#lista_records_modale' : '#lista_records';
        },
        pre: function(){
            return num_modale-- ;
        },
        go: function(){
            return this.percorso();
        },
    ......


    Ora la prima cosa che non riesco a fare � la concatenazione di chiamate, ovvero, nella vecchia funzione potevo chiamare per es. _modale()._pre()._pre()._go() e ottenevo quello che volevo, ora invece non riesco ad ottenere la stessa cosa, quindi se faccio per es. modale.pre().pre().go() mi restituisce pre is not a function

    Questo è il primo ostacolo, la vecchia chiamata _modale()._pre()._pre()._go() mi avrebbe restituito, partendo dal livello attuale per es. 3, dove in questo caso il selettore sarebbe #modale_2, con il primo pre scendrebbe di uno, con il secondo di 2 ed avrei il selettore body ovviamente atraverso le altre chiamate, quindi pre() -1 (sulla base del livello attuale), pre() -1 (come prima), go() che richiama percorso che a questo punto utilizza il valore modificato, se fosse come nell'esempio precedente 2, avrei 0, ovvero la "root" della pagina quindi body e si comporterebbe di conseguenza.

    Spero di essermi spiegato perchè sò che non è semplice

    Grazie a chi volesse aiutarmi
    Ultima modifica di serialkiller; 26-02-2019 a 19:47

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.