Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 21

Discussione: onClick e Array

  1. #1

    onClick e Array

    Ciao a tutti, vorrei realizzare una cosa ma non ci riesco...
    Questo è il codice:

    codice:
    <script type="text/javascript"> 
    var text = new Array();
    
     
    text[1] = "testo 1";
    text[2] = "testo 2";
    text[3] = "testo 3";
     
     
    var footnotes = new Array();
    footnotes[1] = "nota 1";
    footnotes[2] = "nota 2";
    footnotes[3] = "nota 3";
    
     
    var quips = [];
    quips[0] = "bottone 1";
    quips[1] = "bottone 2";
    quips[2] = "bottone 3";
     
    var cursor = 2 + Math.floor((text.length - 1)*Math.random());
    $(setText());
     
     
    /*
    function loadText() {
     
    	var regex = new RegExp("\\Wq=(\\d+)");
    	var res = regex.exec($(location).attr('href'));	
    	if (res == null) {
    	    setText(null);
    	} else {
    		setText(res[1]);
    	}
    	
    }
    */
    function setText(index) {
    	if (index == null || index < 1) {
    		index = cursor;
    	} 
    	
    	$('#text').html(text[index]);
    	$('#footnote').html('' + footnotes[index] + '');
    	$('#index').html('#' + index);
     
    	$('#quip').text( quips[Math.floor(Math.random()*quips.length)] );
    	
    	if(cursor >= text.length -1){
    		cursor = 1;
    	}
    	else{
    		cursor++;
    	}
    }
    </script>
    abbinato a

    codice:
    Bottone
    Adesso, quando sono su testo 1 e clicco sul bottone, compare testo 2. Quando sono su testo 2, compare testo 3. Quando sono su testo 3, ricomincia da testo 1.

    Vorrei però che quando clicco su bottone comparisse un testo "random": cioè, non sempre nell'ordine 1, 2 e poi 3.

    Qualcuno sa come aiutarmi?
    Sono giorni che ci impazzisco!!

    Grazie mille

    Nicola

  2. #2
    Nessuno ha qualche suggerimento??
    Grazie

  3. #3
    Utente di HTML.it
    Registrato dal
    Oct 2009
    Messaggi
    636
    Math.random() genera un numero compreso tra 0 e 1

    Per ottenere un numero intero casuale all'interno di un range (1-3) puoi fare nel seguente modo
    Codice PHP:
        LowerRange 1;
        
    UpperRange 3;
        var 
    testoCasuale Math.floor(Math.random() * (UpperRange LowerRange 1)) + LowerRange

  4. #4
    Originariamente inviato da longilineo
    Math.random() genera un numero compreso tra 0 e 1

    Per ottenere un numero intero casuale all'interno di un range (1-3) puoi fare nel seguente modo
    Codice PHP:
        LowerRange 1;
        
    UpperRange 3;
        var 
    testoCasuale Math.floor(Math.random() * (UpperRange LowerRange 1)) + LowerRange
    Grazie mille ma... non sono capace di inserirlo all'interno del mio codice... puoi darmi una mano? :-D
    Scusa ma sono proprio alle prime armi....

  5. #5
    Utente di HTML.it
    Registrato dal
    Oct 2009
    Messaggi
    636
    Devi modificare la setText, in particolare l'assegnazione del valore alla variabile cursor.


    Codice PHP:
    function setText(index) {
        if (
    index == null || index 1) {
            
    index cursor;
        } 
        
        $(
    '#text').html(text[index]);
        $(
    '#footnote').html('[url="' footnotes[index] + '"]' footnotes[index] + '[/url]');
        $(
    '#index').html('#' index);
     
        $(
    '#quip').textquips[Math.floor(Math.random()*quips.length)] );
        
            
    /*
            //CAMBIA SOLO QUESTO
        if(cursor >= text.length -1){
            cursor = 1;
        }
        else{
            cursor++;
        }
            */


            //...ECCO COME CAMBIA
            
    cursor Math.floor(Math.random() * (text.length)) + 1;


  6. #6
    Originariamente inviato da longilineo
    Devi modificare la setText, in particolare l'assegnazione del valore alla variabile cursor.


    Codice PHP:
    function setText(index) {
        if (
    index == null || index 1) {
            
    index cursor;
        } 
        
        $(
    '#text').html(text[index]);
        $(
    '#footnote').html('[url="' footnotes[index] + '"]' footnotes[index] + '[/url]');
        $(
    '#index').html('#' index);
     
        $(
    '#quip').textquips[Math.floor(Math.random()*quips.length)] );
        
            
    /*
            //CAMBIA SOLO QUESTO
        if(cursor >= text.length -1){
            cursor = 1;
        }
        else{
            cursor++;
        }
            */


            //...ECCO COME CAMBIA
            
    cursor Math.floor(Math.random() * (text.length)) + 1;

    Grazie mille, sei gentilissimo! L'ho fatto, ma a questo punto cambia il testo del bottone (il c.d. quips) mentre il testo vero e proprio non cambia più...

  7. #7
    Utente di HTML.it
    Registrato dal
    Oct 2009
    Messaggi
    636
    non ho guardato bene tutto il codice, tuttavia mi pare che le 3 istruzioni che inizializzino i testi siano le seguenti:

    Codice PHP:
        
        
    $('#text').html(text[index]);
        $(
    '#footnote').html('[url="' footnotes[index] + '"]' footnotes[index] + '[/url]');
        $(
    '#index').html('#' index); 
    prova a sostituire index a cursor

    Codice PHP:
        
        
    $('#text').html(text[cursor]);
        $(
    '#footnote').html('[url="' footnotes[cursor] + '"]' footnotes[cursor] + '[/url]');
        $(
    '#index').html('#' cursor); 

    non sono sicuro che faccia ciò che speri, se funziona con questa ultima modifica la variabile index penso diventi inutile anche passarla alla funzione e inizializzarla nel primo if

  8. #8
    Niente, sempre uguale, cambia il quip ma non il text...

  9. #9
    Utente di HTML.it
    Registrato dal
    Oct 2009
    Messaggi
    636
    Codice PHP:


    function setText(index) {
            
    index Math.floor(Math.random() * (text.length)) + 1;
        
        

        $(
    '#text').html(text[index]);
        $(
    '#footnote').html('[url="' footnotes[index] + '"]' footnotes[index] + '[/url]');
        $(
    '#index').html('#' index);
     
        $(
    '#quip').textquips[Math.floor(Math.random()*quips.length)] );      

    quip cambia perchè è l'unica che non utilizza index, comunque prova con questo ultimo script e considera sempre che non ho letto tutto il tuo codice, vedi un pò che succede

  10. #10
    Nisba!
    grazie comunque!

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.