JQuery всплывающие подсказки: добавить / удалить против показать / скрыть - PullRequest
0 голосов
/ 25 августа 2009

Я показываю всплывающие подсказки вот так

$(clickedElement).append('<span id="activeHelpTip" class="helpTip">Loading help...</span>');
$('#activeHelpTip').remove();

Коллега предложил, чтобы при загрузке страницы я добавлял ВСЕ возможные всплывающие подсказки с отсутствием видимости и отображал / скрывал их по требованию.

Какая разница? Кого это волнует?

Редактировать: уместно ли, чтобы всплывающие подсказки предоставлялись службой ajax?

Ответы [ 5 ]

1 голос
/ 25 августа 2009

Самая большая причина, по которой я мог бы подумать о том, чтобы использовать show and hide вместо добавления и удаления, заключается в том, что при использовании .remove() он уничтожает все обработчики событий и кэширует $.data в удаляемых объектах DOM.

Из JQuery документы

Удаляет все совпадающие элементы из DOM. Это НЕ удаляет их из объект jQuery, позволяющий использовать согласованные элементы дальше. Заметка что эта функция начиная с 1.2.2 также удалит все обработчики событий и внутренне кэшированные данные. Итак:

1 голос
/ 25 августа 2009

В стороне от ремонтопригодности - то, что вы делаете, будет работать хорошо, следуя рекомендациям по ограниченному выбору селекторов. Таким образом, нет причин для изменения производительности.

С точки зрения удобства сопровождения его, безусловно, можно улучшить, чтобы сделать список советов более редактируемым - убрать текст с разметки.

1 голос
/ 25 августа 2009

Я бы сказал, что это несколько проще и удобнее выполнять так, как говорит ваш коллега, потому что это обычно приводит к тому, что всплывающие подсказки находятся рядом с элементами, на которые они ссылаются, в HTML, а не в скрипте где-то, и вы пишете их непосредственно в HTML, а не внутри строк JS.

Я не ожидаю, что либо будет заметно быстрее, чем другие, либо использует существенно другой объем памяти.

Повторное редактирование: если ваши всплывающие подсказки в настоящее время обрабатываются с помощью Ajax, то, естественно, они будут появляться намного быстрее, если вместо этого они были предварительно загружены на страницу.

0 голосов
/ 25 августа 2009

Поскольку вы уже используете jQuery, вы должны проверить плагин Tooltip . Это делает показ подсказок довольно простым и очень гибким.

0 голосов
/ 25 августа 2009

Это намного чище и проще. Кроме того, вы можете использовать различные методы, чтобы показать / скрыть подсказки, такие как fadeIn () / fadeOut (), slideDown () / slideUp для скрытого элемента.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...