2014-01-30 2 views
0

Я хотел бы реализовать эту ситуацию: ссылка пользователя hovers и на его экране появляется div с дополнительной информацией.JavaScript - tooltip div on hover

Нет проблем, чтобы генерировать div с абсолютным положением, заполнять данные и отображать их с помощью jQuery, но проблема связана с ремонтопригодностью. Я хочу отделить логику и взгляд. Что делать, если я хочу изменить макет страницы в будущем? Как программист узнает, что какая-то часть страницы существует в файле JavaScript?

Это элегантный способ разделить вид (в моем случае структуру HTML) и логику (данные, полученные с сервера в JSON с использованием JS-скрипта) и объединить их? Это какой-то ... шаблонный движок или что-то в этом роде в JavaScript?

+0

Посмотрите HTML5 'data'-attributes: http://ejohn.org/blog/html-5-data-attributes/ – cr0

+0

Почему вы просто не используете атрибут title? 'something' – Zzyrk

+0

Это должен быть пользовательский тег html div. Например, я хотел бы использовать изображение с несколькими ссылками и комментариями. – Fka

ответ

1

Bootstrap делает все это и многое другое: http://getbootstrap.com/javascript/#tooltips

Выражаясь:

$('#example').tooltip(options) 

И разметке существо:

<div class="tooltip"> 
    <div class="tooltip-inner"> 
    Tooltip text here! 
    </div> 
    <div class="tooltip-arrow"></div> 
</div> 

Перейдите по ссылке для более детального объяснения как его реализовать

+0

Выглядит отлично для меня :) – Fka

+0

Хорошо :) Есть и другие (возможно, более настраиваемые) пользовательские интерфейсы, такие как bootstrap – Connor

+0

Например: http://designmodo.github.io/Flat-UI/ Для меня плоский интерфейс удивительный, прокрутите все образцы, там есть подсказка ... – Connor

1

Вы можете создавать свои записи HTML, как этот

<a> 
    My Cool Link 
    <div class="tooltip"> 
     This link is awesome! 
    </div> 
</a> 

и использовать CSS стилизовать подсказка: (важная часть является a:hover .tooltip и все, кроме background на .tooltip

a { 
    display: inline-block; 
} 
a:hover .tooltip { 
    visibility: visible; 
} 
.tooltip { 
    position: relative; 
    top: 20px; 
    left: -50%; 
    display: inline; 
    visibility: hidden; 
    background: #eee; 
} 

Пример: http://jsfiddle.net/4K7sB/

Тогда вам просто нужно заполнить элементы правильным текстом с помощью JS.

0

Просто добавьте атрибут заголовка в сНу тэгом как ниже код ....

<div title="First Div">StackOverFlow StackOverFlow StackOverFlow 
StackOverFlow StackOverFlow StackOverFlow StackOverFlow StackOverFlow 
StackOverFlow </div> 
</div> 
<br /><br /> 
<div title="Second Div">StackOverFlow StackOverFlow StackOverFlow 
StackOverFlow StackOverFlow StackOverFlow StackOverFlow StackOverFlow 
StackOverFlow </div> 
</div> 

просто скопировать пасты и проверить.