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

    [mootools] more da errore se caricato sul server

    Ho usato mootools per creare alcuni effetti in una pagina, in particolare fx.slide per far comparire/scomparire alcuni div e in locale il tutto funziona.

    Se invece carico tale pagina con i relativi file di mootools (core e more) sul server, non funziona niente e la console di javascript da questo errore:
    document.id is not a function
    alla riga
    codice:
    this.element = this.subject = document.id(element);
    della classe fx.slide:
    codice:
    Fx.Slide = new Class({
    
    	Extends: Fx,
    
    	options: {
    		mode: 'vertical'
    	},
    
    	initialize: function(element, options){
    		this.addEvent('complete', function(){
    			this.open = (this.wrapper['offset' + this.layout.capitalize()] != 0);
    			if (this.open && Browser.Engine.webkit419) this.element.dispose().inject(this.wrapper);
    		}, true);
    		this.element = this.subject = document.id(element);
    		this.parent(options);
    		var wrapper = this.element.retrieve('wrapper');
    		this.wrapper = wrapper || new Element('div', {
    			styles: $extend(this.element.getStyles('margin', 'position'), {overflow: 'hidden'})
    		}).wraps(this.element);
    		this.element.store('wrapper', this.wrapper).setStyle('margin', 0);
    		this.now = [];
    		this.open = true;
    	},
    
    	vertical: function(){
    		this.margin = 'margin-top';
    		this.layout = 'height';
    		this.offset = this.element.offsetHeight;
    	},
    
    	horizontal: function(){
    		this.margin = 'margin-left';
    		this.layout = 'width';
    		this.offset = this.element.offsetWidth;
    	},
    
    	set: function(now){
    		this.element.setStyle(this.margin, now[0]);
    		this.wrapper.setStyle(this.layout, now[1]);
    		return this;
    	},
    
    	compute: function(from, to, delta){
    		return [0, 1].map(function(i){
    			return Fx.compute(from[i], to[i], delta);
    		});
    	},
    
    	start: function(how, mode){
    		if (!this.check(how, mode)) return this;
    		this[mode || this.options.mode]();
    		var margin = this.element.getStyle(this.margin).toInt();
    		var layout = this.wrapper.getStyle(this.layout).toInt();
    		var caseIn = [[margin, layout], [0, this.offset]];
    		var caseOut = [[margin, layout], [-this.offset, 0]];
    		var start;
    		switch (how){
    			case 'in': start = caseIn; break;
    			case 'out': start = caseOut; break;
    			case 'toggle': start = (layout == 0) ? caseIn : caseOut;
    		}
    		return this.parent(start[0], start[1]);
    	},
    
    	slideIn: function(mode){
    		return this.start('in', mode);
    	},
    
    	slideOut: function(mode){
    		return this.start('out', mode);
    	},
    
    	hide: function(mode){
    		this[mode || this.options.mode]();
    		this.open = false;
    		return this.set([-this.offset, 0]);
    	},
    
    	show: function(mode){
    		this[mode || this.options.mode]();
    		this.open = true;
    		return this.set([0, this.offset]);
    	},
    
    	toggle: function(mode){
    		return this.start('toggle', mode);
    	}
    
    });
    Non capisco perche succede questo indipendentemente del file utilizzato, ho usato gli stessi file e in locale ho anche impostato il file degli host di windows per non sbagliare i link.
    Ho provato anche a cambiare i file scaricandoli di nuovo, ma l'errore persiste.

    come posso risolvere questo problema?

  2. #2
    ma dove l'hai presa? fin dalla 1.2, Fx.Slide è:

    this.element = this.subject = $(element);

    nel punto dove ti da errore.
    I DON'T Double Click!

  3. #3
    sono andato qui:
    http://mootools.net/more
    ho selezionato tutto e glielo ho fatto creare e l'ha creato cosi

  4. #4
    ho modificato come hai detto te, adesso esce un altro errore due righe piu sotto

    codice:
    var wrapper = this.element.retrieve('wrapper');
    this.element is null

  5. #5
    scusa, ma hai scaricato anche il core nuovo?
    I DON'T Double Click!

  6. #6
    certo, il core è 1.2.3 e il more è 1.2.3.1, entrambi builded con tutte le opzioni disponibili e senza compressione

    Codice PHP:
    <html>
    <
    head>
        <
    script language="javascript" type="text/javascript" src="../mootools-core.js"></script>
        <script language="javascript" type="text/javascript" src="../mootools-more.js"></script>
        <title>Mootools - Slide</title>
        <script language="javascript" type="text/javascript">        
            var s1 = new Fx.Slide('uno',{duration: 1000});
            var s2 = new Fx.Slide('due',{duration: 1000, mode: horizontal});
            $('m1').addEvent('click', function(e){
                e = new Event(e);
                s1.slideIn();
                s2.slideIn();
                e.stop();
            });
            $('m1').addEvent('click', function(e){
                e = new Event(e);
                s1.slideOut();
                s2.slideOut();
                e.stop();
            });
        </script>
    </head>
    <body>
        <div align="center">
        <table border="1" width="50%">
        <tr><td width="50%">[url="#"]Mostra[/url]</td><td>[url="#"]Nascondi[/url]</td></tr>
        </table>
        </div>
        <div id="uno">
            Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
        </div>
        

        <div id="due">
            Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
        </div>
    </body>
    </html> 

  7. #7
    Non può funzionare se non lo metti nell'evento onload.

    Comunque, io non uso mai Fx.Slide, perché non sono mai riuscito a farlo andare bene, secondo me richiede delle configurazioni CSS particolari sugli elementi.
    I DON'T Double Click!

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.