$.getJSON + 设置间隔

$.getJSON + setInterval

我通过以下代码从 JSONP 文件中获取一些数据:

$.getJSON('http://static.eska.pl/m/playlist/channel-108.jsonp?callback=?' );
function jsonp(data) { 
document.getElementById("artist").innerHTML = data[0].artists[0].name;
document.getElementById("title").innerHTML = data[0].name;
 };
<!DOCTYPE html>
<head>
    <title>JSONP EskaRock </title>
 <script src="http://code.jquery.com/jquery-latest.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
</head>

<body>
<div id="artist"></div>
<div id="title"></div>
</body>
</html>

有效,但我需要每 10 秒刷新一次数据。我使用 setInterval 函数但控制台 FireFox return 错误“ReferenceError: jsonp 未定义 (...channel-108.jsonp:1:1)”。我的 setInterval 代码:

setInterval( function () {
$.getJSON('http://static.eska.pl/m/playlist/channel-108.jsonp?callback=?' );
function jsonp(data) { 
document.getElementById("artist").innerHTML = data[0].artists[0].name;
document.getElementById("title").innerHTML = data[0].name;
};
}, 10000)
<!DOCTYPE html>
<head>
 <title>JSONP EskaRock </title>
 <script src="http://code.jquery.com/jquery-latest.js"></script>
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
</head>

<body>
<div id="artist"></div>
<div id="title"></div>
</body>

</html>

哪里出了问题?

您在 setInterval 中声明函数,将其移到外部,它将起作用

function jsonp(data) {
  document.getElementById("artist").innerHTML = data[0].artists[0].name;
  document.getElementById("title").innerHTML = data[0].name;
};
setInterval(function() {
  $.getJSON('http://static.eska.pl/m/playlist/channel-108.jsonp?callback=?');

}, 10000)
<!DOCTYPE html>

<head>
  <title>JSONP EskaRock </title>
  <script src="http://code.jquery.com/jquery-latest.js"></script>

</head>

<body>
  <div id="artist"></div>
  <div id="title"></div>
</body>