Javascript 当用户取消选择div时停止代码运行
当用户取消选择他们选择的div时,我试图停止setInterval函数的运行,但我无法让它工作。有什么想法吗` 我试过净空间歇,但不起作用。我也尝试过使用这个cvalue,但它在代码中没有更新Javascript 当用户取消选择div时停止代码运行,javascript,jquery,css,this,setinterval,Javascript,Jquery,Css,This,Setinterval,当用户取消选择他们选择的div时,我试图停止setInterval函数的运行,但我无法让它工作。有什么想法吗` 我试过净空间歇,但不起作用。我也尝试过使用这个cvalue,但它在代码中没有更新 $(document).on("click",".profTemp", function() { var pollUser; if(!$(this).hasClass('selected'))
$(document).on("click",".profTemp", function()
{
var pollUser;
if(!$(this).hasClass('selected'))
{
var selectedUser;
var previous = null;
var current = null;
var assigned = false;
selectedUser = $(this).children('span').text();
selectedUser = selectedUser.trim();
//selectedUser = $(this).children('span').text();
console.log(selectedUser);
$(this).toggleClass('selected');
//selectedUser = selectedUser.trim();
pollUser = setInterval(function()
{
console.log(selectedUser);
$.ajax({
url: '/getJSON',
dataType: 'json',
success: function(response) {
console.log(response + "84897348");
obj = JSON.parse(response);
console.log(selectedUser + "inside success");
var changeTo;
var deviceID;
console.log(current + "current");
for(var i = 0; i < obj.clients.length; i++)
{
if((selectedUser == obj.clients[i].userName) && (assigned == false))
{
console.log(selectedUser + " inside if");
current = JSON.stringify(obj.clients[i]);
changeTo = obj.clients[i].uri;
device = obj.clients[i].deviceID
assigned = true;
}
}
assigned = false;
console.log(current + " current");
console.log(previous + "previous");
if(previous !== current)
{
console.log("ARE WE INSIDE HERE");
$.ajax({
url: 'https://api.spotify.com/v1/me/player/play',
contentType: 'application/json',
type: 'PUT',
dataType: 'json',
headers: {
'Authorization': 'Bearer ' + access_token
},
data: JSON.stringify({"uris":[changeTo], "device_id":device, "offset": { "uri":changeTo} }),
success: function(response) {
console.log(response);
}
});
}
}
});
previous = current;
console.log(selectedUser);
}, 2000);
}
else if($(this).hasClass('selected'))
{
$(this).toggleClass('selected');
console.log("not selected");
clearInterval(pollUser);
}
});
$(document).on(“click”,“.proftem”,function())
{
var-pollUser;
if(!$(this).hasClass('selected'))
{
变量选择器;
var-previous=null;
无功电流=零;
var赋值=假;
selectedUser=$(this.children('span').text();
selectedUser=selectedUser.trim();
//selectedUser=$(this.children('span').text();
console.log(selectedUser);
$(this.toggleClass('selected');
//selectedUser=selectedUser.trim();
pollUser=setInterval(函数()
{
console.log(selectedUser);
$.ajax({
url:“/getJSON”,
数据类型:“json”,
成功:功能(响应){
控制台日志(响应+84897348“);
obj=JSON.parse(响应);
console.log(selectedUser+“insidesuccess”);
var转换为;
变量设备ID;
控制台日志(当前+“当前”);
对于(变量i=0;i
`将var置于用户;在onclick函数之前。
var pollUser
是您希望设置间隔的id所在的位置,对吗?因为在函数的后面,您将执行pollUser=setInterval(函数()…
。请参见关于setInterval的
这不起作用,因为在.proftem
的每一次点击,您都在通过在函数顶部执行var pollUser
来创建一个新的pollUser
变量
如果要实际保存setInterval的ID,应将其保存到.proftem
单击处理程序函数范围之外的变量中,以便对其进行维护
在上,是否“未选择”登录到控制台?是的,它会记录,然后返回并循环pollUserOh中的代码,一秒钟后立即键入答案Komali_2解释了原因:D