2017-11-23 2 views
0

Ich versuche, diese Funktion, die einen zufälligen Ort wählt und zeigt es, wenn Sie dazu aufgefordert werden. Beim Drücken der Taste wird nur einmal ausgeführt.JQuery Meine Funktion läuft nur einmal

$(".place").hide(); 

var randomNumber = Math.floor(Math.random()*44); 



$("#button").click(function() { 
    "use strict"; 
    $("#place"+randomNumber).show("slow", function(){ 
     alert=("New Place"); 
    }); 
}); 
+2

Sie erzeugen die Zufallszahl nur einmal. Fragen Sie nur, warum sich die Nummer nicht ändert? – Carcigenicate

+0

ist dort ein Ameisenelement existiert mit $ ("# place" + randomNumber); –

+0

Ja grundsätzlich möchte ich den Knopf unendlich oft drücken können und eine andere Antwort haben. Ich habe versucht, eine Schleife zu setzen, aber aus irgendeinem Grund funktioniert es nicht! –

Antwort

1

Sie benötigen eine neue Zufallszahl für jeden erzeugen

$("#button").click(function() { 
    "use strict"; 
    var randomNumber = Math.floor(Math.random()*44); 
    $("#place"+randomNumber).show("slow", function(){ 
     alert=("New Place"); 
    }); 
}); 

klicken Wenn Sie die anderen wollen versteckt werden ändern zu:

$('.place').hide().filter("#place"+randomNumber).show... 
0

haben Sie setzen nur randomNumber einmal . Um neue Zufallszahl zu erzeugen, wenn der Benutzer auf Ihren #button klickt, können Sie randomNumber eine Funktion machen:

$(".place").hide(); 

function randomNumber() { 
    return Math.floor(Math.random()*44); 
} 

$("#button").click(function(){ 
    "use strict"; 
    $("#place"+ randomNumber()).show(
    "slow", function(){ 
     alert=("New Place"); 
    }); 
}); 
0

Ihre random werden immer das gleiche sein, wenn definiert. Verschieben Sie es in den Click-Handler.

$(".place").hide(); 

$("#button").click(function() { 
    "use strict"; 
    var randomNumber = Math.floor(Math.random()*44); // <--- 
    $("#place"+randomNumber).show("slow", function(){ 
     alert=("New Place"); 
    }); 
});