jquery - Rückgabe eines Wertes aus der Funktion
sagen, ich habe die folgende Funktion:
function checkPanes() {
activePane = '';
var panels = $("#slider .box .panel");
panels.each(function() {
//find the one in visible state.
if ($(this).is(":visible")) {
activePane = $(this).index()+1;
console.log(activePane);
}
});
} //END checkPanes();
Ideal, ich möchte nennen auf diese Funktion an anderer Stelle (wahrscheinlich aus einer anderen Funktion),
und den Wert abgerufen wird, bin ich derzeit die Ausgabe auf die Konsole.
(Beispiel ..)
function exampleCase() {
checkPanes(); //evidently, does not return anything.
//Ideally, I want the numerical value, being output to console in above function.
}
Vielen Dank im Voraus! Alle Vorschläge /Kommentare sind willkommen.
Cheers
- Haben Sie versucht
return activePane;
?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Vergessen, jeder, der sagt
return activePane
da Sie nicht sehen, dass es in einem jQueryeach
Schleife. Wird nicht funktionieren.Ich würde vorschlagen, die Umstrukturierung Ihrer Auswahl. Der Selektor, den Sie verwenden sollten, ist:
$("#slider .box .panel:visible")
. Dies wird schneiden Sie Ihr jede Schleife vollständig. Zum Beispiel könnten Sie strukturieren den code wie folgt:Ich würde vorschlagen, nur mit dem selector in-line, anstatt eine neue Funktion, aber das ist Geschmackssache, vor allem, wenn Sie haben zu wählen die gleiche Sache in mehreren stellen.
var data = get_data()
stattget_data()
dann können Sie die Daten, habe Sie in der gleichen Funktion.Ist nur aufgefallen, das loop; sieht aus wie, was Sie vielleicht zurück wollen ist ein array aller aktiven Platten (da in der Theorie könnte es mehr als eine).
Wenn Sie wissen, es wird immer nur eine aktiv ist, können Sie gehen Sie zurück zu Ihrem ursprünglichen Ansatz und fügen Sie einfach
return activePane
nach derconsole.log
.var activePanes=checkPanes();
haben Sie die return-Wert in eine lokale variable und kann es verwenden wie Sie möchten (oder loggen).Schalten Sie Ihre Konsole Linie auf eine return-Anweisung:
Nennen:
Ich denke, dass es so einfach ist wie mit
return activePane;
Diese:
und so:
}
Können Sie halten Ihr code und fügen Sie einfach eine Rückkehr, wenn Sie möchten, verwenden Sie die Werte woanders
So, in hier können Sie entweder den zurückgegebenen Wert oder einfach nur log-Konsole. Das ist, wie ich deine Frage verstanden
Aber stellen Sie sicher, dass Sie Rückgabewerte Zeichenfolge - oder konvertieren in string, wenn Sie wollen disaply irgendwo als text.
müssen Sie etwas zurückgeben innerhalb der ersten Funktion zu manipulieren, es in die zweite:
Ich denke, das ist, was Sie brauchen.