【发布时间】:2019-12-13 16:49:18
【问题描述】:
简单地说,我有这个导航:
jsfiddle 在最后。
<div class="country-list">
<div class="country-item active" data-country="pt">PT</div>
<div class="country-item" data-country="be">BE</div>
<div class="country-item" data-country="pl">PL</div>
<div class="country-item" data-country="ge">PT</div>
</div>
<ul class="next-prev">
<li class="prev">Prev</li>
<li class="next">Next</li>
</ul>
每个国家/地区项目都有一个与 svg 国家/地区 ID 相同的数据
<g id="pt" class="enabled"
<g id="be" class="enabled"
然后我有这个功能和一个基本的左右导航,最终使用它来启动工具提示器,但我不知道如何让它在单击下一步时自动关闭和打开?现在还是需要点击打开。
function showMapInfo() {
var dataCountry = $('.country-item.active').data('country');
//console.log(dataCountry);
var countryId;
$('.svg-container .enabled').each( function(){
countryId = $(this).attr("id");
//console.log(countryId);
if (dataCountry === countryId) {
$('.svg-container .enabled').removeClass('active');
$(this).addClass('active');
$('.svg-container .active').tooltipster({
interactive: true,
maxWidth: 300,
distance: 60,
animation: 'grow',
side: 'bottom',
trigger: 'click',
contentAsHTML: true,
content:$('#' + dataCountry).data("description")
});
}
});
}
showMapInfo();
$('.next-prev li').on('click', function () {
if ($(this).hasClass('next')){
if ($('.country-item.active').next().length == 0) {
$('.country-item.active').removeClass('active');
$('.country-item:first-child').addClass('active');
} else {
$('.country-item.active').next().addClass("active").prev().removeClass('active');
console.log($('.country-item.active').next());
}
showMapInfo();
} else {
if ($('.country-item.active').prev().length == 0) {
$('.country-item.active').removeClass('active');
$('.country-item:last-child').addClass('active');
} else {
$('.country-item.active').prev().addClass("active").next().removeClass('active');
console.log($('.country-item.active').prev());
}
showMapInfo();
}
});
如何通过单击下一个/上一个来关闭/打开工具提示而不需要专门单击它?如果导航也有一个活动类,我也许还可以打开第一个。
点击任何地方都可以关闭它。
【问题讨论】:
标签: javascript jquery html tooltip tooltipster