Javascript 悬停时仅显示一个div
我正在使用WikipediaAPI做一个项目,用户可以在搜索中键入一些名称,并从Wikipedia获得结果。所以我有大部分的工作,但有一个问题妨碍了我。当我将鼠标悬停在“每个列表”div上时,会从父div的右侧显示“显示更多”div,即“每个列表”div。然后我将鼠标悬停在“显示更多”div上,这会导致另一个名为“titleDesc”的div出现。问题是当我将鼠标悬停在“showmore”div上时,所有显示的“titleDesc”divs都会显示,而我只需要显示一个相关div Javascript代码Javascript 悬停时仅显示一个div,javascript,jquery,html,css,Javascript,Jquery,Html,Css,我正在使用WikipediaAPI做一个项目,用户可以在搜索中键入一些名称,并从Wikipedia获得结果。所以我有大部分的工作,但有一个问题妨碍了我。当我将鼠标悬停在“每个列表”div上时,会从父div的右侧显示“显示更多”div,即“每个列表”div。然后我将鼠标悬停在“显示更多”div上,这会导致另一个名为“titleDesc”的div出现。问题是当我将鼠标悬停在“showmore”div上时,所有显示的“titleDesc”divs都会显示,而我只需要显示一个相关div Javascri
var apiKey = "*****";
var appendApiKeyHeader = function(xhr) {
xhr.setRequestHeader('Api-Key', apiKey)
};
var name = "Eminem";
var searchRequest = {
"phrase": name
}
$('#search').click(function() {
var foundArticle = $("#query").val();
console.log(foundArticle);
var wikiUrl = 'http://en.wikipedia.org/w/api.php?action=opensearch&search=' + foundArticle + '&format=json&callback=wikiCalback';
// Clear content before AJAX call
$(".list-container").html("");
$.ajax({
url: wikiUrl,
dataType: "jsonp",
success: function(response) {
var artList = response[1];
console.log(artList);
for (var i = 0; i < artList.length; i++) {
var title = artList[i];
console.log("Number" + " " + i + " " + title);
var titleDesc = response[2][i];
console.log("Number" + " " + i + " " + titleDesc);
var url = 'http://en.wikipedia.org/wiki/' + title;
$(".list-container").append(
'<span class = "each-list">' +
'<a href="' + url + '" target="_blank" >' +
title +
'</a>' +
'<div class="show-more">' +
'<div id="show-more-inner">MORE</div>' +
'</div>' +
'</span>' +
'<div class="titleDesc">' + '<p>' + titleDesc + '</p>' + '</div>'
);
} // end of "for" loop
$('.show-more').hover(
function() {
$('.titleDesc').show();
}
);
} // success function end
}) // ajax function
return false;
}); // click function
function GetSearchResults() {
$.ajax({
type: "GET",
beforeSend: appendApiKeyHeader,
url: "https://api.gettyimages.com/v3/search/images",
data: searchRequest
}).success(function(data, textStatus, jqXHR) {
var uri = data.images[0].display_sizes[0].uri;
$(".images").append('<img src = "' + uri + '" />');
console.log(data);
}).fail(function(data, err) {
console.log(data);
});
}
GetSearchResults();
如何仅使该div显示
如果你想了解更多的细节,请随时查看。
$(this)//触发“hover”事件的“.show\u more”元素
.parent(“.each list”)//包含的“.each list”(*)
.next(“.titleDesc”)//类为“titleDesc”的下一个同级
.show();
(*)生成的标记无效。
元素只允许包含其他内联元素,不允许包含块元素(
)在HTML中没有.titleDesc
,不管怎样,我看到它是由JS生成的。它是在javascript中动态添加的。所以我需要用div替换它?是的,我会用
-imho替换
$('.show-more').hover(
function() {
$('.titleDesc').show();
}
);
$(this) // the ".show_more" element which triggered the "hover" event
.parent(".each-list") // the enclosing ".each-list" <span> (*)
.next(".titleDesc") // the next sibling with class "titleDesc"
.show();