我有一个 php 页面,它在屏幕上放置了 X 个行星图像,然后为每个行星提供了一个鼠标悬停工具提示,其中将包含与行星相关的信息。如果可能的话,我想做的不是将我的页面源与所有工具提示数据混在一起。我希望它以某种方式隐藏起来。
在这里,我创建了一个图像标签,其中包含我的行星数据的 json 编码数组(它被放置在我的 cakePHP 控制器对象的会话中)。
<?php
foreach ($game['Planet'] as $planet) {
echo $this->Html->image('../img/planet/' . $planet['planet_image_file'] .'.png',
array('class' => 'planet_img planet_' . $planet['id'],
'id' => 'planet_' . $planet['id'],
'alt' => $planet['planet_name'],
'data-planet' => json_encode(array('planet_name' => $planet['planet_name'],'planet_type' => $planet['planet_type']));
}
?>
(目前只有两个领域,但未来还会有大约 30 个)
这是我创建 Qtip2 工具提示的 jQuery:
$(document).ready(function(){
$('.planet_img').each(function(){
$(this).qtip({
content: $(this).data('planet').planet_name,
position: {
my: 'top left',
at: 'right top'
}
});
})
});
因此,正如您所看到的,目前,我只是将 Qtip 的内容设置为来自 planet-info JSON 数组的字段之一。最终,我将构建一个格式良好的 div 标签,其中包含所有行星数据和 CSS 样式......
有没有更好的方法来做到这一点?我正在考虑让 Qtip 通过 Ajax 调用获取其内容,但是将有成千上万的用户不断地在数千个星球上移动鼠标,我只能想象这将对我的 MySQL 后端造成巨大压力。
让 Qtip 从会话中获取信息,我已经在哪里存储了行星详细信息,以及 PHP 页面从哪里获取信息呢?如果这是可行的,那么我目前无法看到如何,并且需要轻推。
基本上,我愿意在这里提出建议和建议,否则我显然会以最混乱的方式结束!