Javascript 变量更改后的调用事件
对于一个学校项目,我正在制作一个网站,让用户能够相互倾听 到目前为止,我有这个按钮,可以让用户听另一个用户正在听的歌曲,包括正确的位置。但这只会调用此函数一次 我想要的是当[randomNummer}更改时,它将自动再次调用该函数。有人知道我如何做到这一点,以及我必须使用什么来实现这一点吗 这是按钮的代码:Javascript 变量更改后的调用事件,javascript,jquery,html,api,spotify,Javascript,Jquery,Html,Api,Spotify,对于一个学校项目,我正在制作一个网站,让用户能够相互倾听 到目前为止,我有这个按钮,可以让用户听另一个用户正在听的歌曲,包括正确的位置。但这只会调用此函数一次 我想要的是当[randomNummer}更改时,它将自动再次调用该函数。有人知道我如何做到这一点,以及我必须使用什么来实现这一点吗 这是按钮的代码: document.getElementById('play-song').addEventListener('click', function() {
document.getElementById('play-song').addEventListener('click', function() {
$.ajax({
url: 'https://api.spotify.com/v1/me/player/play',
type: 'PUT',
headers: {
'Authorization': 'Bearer ' + access_token
},
dataType: "json",
contentType: "application/json",
data: JSON.stringify({
"uris": [randomNummer],
"position_ms": seconds
})
});
}, false);
randomNummer当前使用数组生成:
var randomNummer;
var myArray = [
"spotify:track:1EtcyegB7JLkAwwqiPyeJ6",
"spotify:track:6rAXHPd18PZ6W8m9EectzH",
"spotify:track:5qaEfEh1AtSdrdrByCP7qR",
"spotify:track:1CnPYaKxTVb4LWOtiGOm0m",
"spotify:track:3qEg6xYffvuvwpq4U6FRrK"
];
setInterval(function(){
callItem();
}, 200000);
var callItem = function(){
randomNummer = myArray[Math.floor(Math.random()*myArray.length)];
document.getElementById("song-uri").innerHTML = randomNummer;
}
我看到您使用了Jquery。所以…
首先,稍微更改一下您的代码:
$('#play-song').on('click', function(e) {
$.ajax({
url: 'https://api.spotify.com/v1/me/player/play',
type: 'PUT',
headers: {
'Authorization': 'Bearer ' + access_token
},
dataType: "json",
contentType: "application/json",
data: JSON.stringify({
"uris": $("#song-uri").val(),
"position_ms": seconds
})
});
}, false);
以及:
在这种情况下,我们将使用隐藏输入来存储随机数:
<input type="hidden" id="song-uri" />
var randomNummer={
值:函数值(newValue){
//如果设置了一个新值,则将其分配给内部“\u value”,并触发回调,该回调可以根据需要执行操作
if(newValue的类型!=“未定义”){
此值为.\u value=newValue;
这是callback();
}
//始终返回当前值
返回此值;
},
回调:函数回调(){
//在价值改变后做你想做的事情
console.log(“值更改为”+此值);
}
};
var myArray=[
“spotify:track:1etcyegb7jlkawqipyej6”,
“spotify:track:6rAXHPd18PZ6W8m9EectzH”,
“spotify:track:5Qaefeh1ATSDRBYCP7QR”,
“spotify:track:1CNPYAKXTVB4LWOTIGOMm”,
“spotify:track:3qEg6xYffvuvwpq4U6FRrK”
];
var callItem=函数(){
document.getElementById(“歌曲uri”).innerHTML=randomNummer.value(myArray[Math.floor(Math.random()*myArray.length)];
}
设置间隔(callItem,2000);
当我实现它时,我在控制台中得到了“未定义”的randomNummer,它现在似乎对大多数人起作用。只有catch change事件似乎没有任何作用。我已经这样测试过:`$(“#歌曲uri”)。on('change',function(e){buttonPressed=+1;})`但对buttonPressed的值没有任何更改。
<input type="hidden" id="song-uri" />
$("#song-uri").on('change', function(e){
//event on change random value
});