【发布时间】:2016-03-08 19:09:04
【问题描述】:
我试图在 jquery 中使用悬停来显示一个弹出窗口,但是当我将鼠标悬停在一个元素上时,它会显示多个弹出窗口,当我从元素上移开鼠标时,弹出窗口仍然存在。这是代码-
var channels = ["freecodecamp", "storbeck", "goldglove", "terakilobyte", "beohoff", "habathcx", "RobotCaleb", "thomasballinger", "noobs2ninjas", "syndicate", "riotgames", "comster404", "test_channel", "cretetion", "sheevergaming", "TR7K", "OgamingSC2", "syndicate"];
$(document).ready(function() {
getChannels();
});
function getChannels() {
channels.forEach(function(channel) {
$.getJSON('https://api.twitch.tv/kraken/streams/' + channel + '?callback=?', function(data) {
if (data.stream === null) {
html = '<div class="row"><div class="col-md-3"><a href=https://api.twitch.tv/kraken/channels/' + channel + ' class="result" id="' + channel + '">' + channel + '</a></div><div class="col-md-3">Offline</div></div>';
} else if (data.stream === undefined) {
html = '<div class="row"><div class="col-md-3"><a href=https://api.twitch.tv/kraken/channels/' + channel + ' class="result" id="' + channel + '">' + channel + '</a></div><div class="col-md-3">Not Available</div></div>';
} else {
html = '<div class="row"><div class="col-md-3"><a href=https://api.twitch.tv/kraken/channels/' + channel + ' class="result" id="' + channel + '">' + channel + '</a></div><div class="col-md-3">Online</div></div>';
}
$("#list").append(html);
$(".result").hover(function() {
var x = $(this).attr('id');
var y = "#" + x;
$.getJSON('https://api.twitch.tv/kraken/channels/' + x + '?callback=?', function(info) {
console.log(x);
detail = '<div id="detail"><img src="' + info.logo + '" class="logo"><p>Language:' + info.language + '</p><p>Mature Content:' + info.mature + '</p><p>Title:' + info.game + '-' + info.status + '</p></div>';
$(y).append(detail);
});
}, function() {
$("#detail").remove();
});
});
});
}
我无法在这里找出问题所在。请帮忙。
【问题讨论】:
-
你有一个循环内的事件处理程序,它被附加了多次
-
是的,我试着把它放在循环之外,但在那之后它根本不起作用。
-
我想我必须为你修好它……再给我一秒钟。
标签: javascript jquery html jquery-hover