我试图浏览一个WordPress(自定义字段)数组。我想先打印array[0]
,然后打印6s打印数组1,依此类推,直到它到达数组末尾,然后再打印array[0]
。
它曾经奏效,但现在已经不复存在了。我找不到这个bug。似乎在6s的一个间隔中它打印2个引号但总是跳过一个。例如。在控制台中,它会打印1
和2
& 3
和4
一次,但h2
只设置1
和3
。
我还会给你一个引号的截图。这是实例:http://www.inaregen.at/
<!-- header.php -->
<h2 id="quote"></h2>
<?php
$allQuotes = get_post_meta(19, 'zitat', false);
?>
<script>
var quoteJson = <?php echo json_encode($allQuotes); ?>;
</script>
// Quotes.js in footer.php
var prevQuote = null;
var getNextQuote = function() {
if (prevQuote == null) {
prevQuote = 0;
}
if (prevQuote == 0 || prevQuote > 0) {
prevQuote += 1;
}
if (prevQuote == quoteJson.length + 1) {
prevQuote = 0;
}
console.log(prevQuote);
return quoteJson[prevQuote];
}
var setQuote = function() {
var quote = getNextQuote();
$("#quote").text(quote);
setTimeout(setQuote, 6000);
}
jQuery(document).ready(function($) {
setQuote();
});
答案 0 :(得分:1)
我发现您在处理if...else
函数中的所有getNextQuote
个案件时遇到了一些问题
您可以通过完全删除该功能使代码更简单:
注意:这假设quoteJson
不是空的。
var quoteIndex = 0;
var setQuote = function() {
var quote = quoteJson[quoteIndex];
$("#quote").text(quote);
quoteIndex = (quoteIndex + 1) % quoteJson.length; // calculate next index
setTimeout(setQuote, 6000);
}
答案 1 :(得分:0)
您不能使索引与数组长度相同。
长度从1开始,但索引从零开始。因此,如果索引等于长度...你已经超过了数组的末尾
变化:
if (prevQuote == quoteJson.length + 1) {
要
if (prevQuote == quoteJson.length) {
答案 2 :(得分:0)
我刚刚意识到,如果不是if,我需要把握其他的东西。 但是现在当它打印例如array [1]并且它进入下一个间隔时,0.5s显示数组[1]然后它进入getNextQuote函数。 不知道如何解决这个问题。 这是数组:(当我做console.log(数组))
(10) ["Wie schee is des Gfüh, wann ma’s Fliagn probiert?", "Wie tiaf kånn ma foin, wann ma in Bodn verliert?", "Wie bleibt ma kloa und wie wird ma groß?", "Wann hoit ma fest? Wann låsst ma los?", "Kann I irgendwånn wieda so sei wie a Kind?", "Warum? Woher? Wohin? I fråg amoi in Wind", "Was bleibt nu offm, am Ende vom Kras?", "Was deaf ma hoffm, wenn ma goa nix mehr waß?", "Wie foit ma hin und måcht si nix draus?", "Wie fångt ma ån? Wie steht ma auf?"]