0

我有一个 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 页面从哪里获取信息呢?如果这是可行的,那么我目前无法看到如何,并且需要轻推。

基本上,我愿意在这里提出建议和建议,否则我显然会以最混乱的方式结束!

4

0 回答 0