JQuery инструменты - вкладки при наведении курсора - добавление ссылки - PullRequest
3 голосов
/ 01 февраля 2010

Мне нравится этот инструмент для отображения текста при наведении мыши на пиксель:

http://flowplayer.org/tools/demos/tabs/mouseover.htm

Теперь я пытаюсь открыть ссылку, когда мышкой щелкает один из пикселей. Я пробовал так:

original: <'img src="http://static.flowplayer.org/img/commerce/commercial.png" alt="Commercial version" />'

adding link: <'a title="Mylink" href="http://mylink.com" target="_blank"><'img src="http://static.flowplayer.org/img/commerce/free.png" alt="Free version" /></a>''

[Символы вставлены, чтобы показать только источник.]

С этой ссылкой курсор мыши больше не работает. Кто-нибудь знает, что там делать?

Заранее благодарен за любую помощь!

Ответы [ 4 ]

1 голос
/ 03 февраля 2010

ПРОСТОЕ решение: убедитесь, что все изображения обернуты в <a>.то есть:

<div id="products"> 
    <a href="#"><img src="http://static.flowplayer.org/img/commerce/free.png" alt="Free version" /></a>
    <a href="#"><img src="http://static.flowplayer.org/img/commerce/commercial.png" alt="Commercial version" /></a>
    <a href="#"><img src="http://static.flowplayer.org/img/commerce/multidomain.png" alt="Multidomain version" /></a>
</div> 

Это прекрасно работает;Я только что попробовал это.Я предполагаю, что вкладки jQuery Tools работают только в том случае, если все дочерние элементы указанного вами контейнера имеют одинаковый тип.

РЕДАКТИРОВАТЬ: да, похоже, он работает только с первым типом тега, с которым он сталкивается.Например, если вы поместите первые две ссылки в <a>, а не в третью, наведение мыши будет работать только для первых двух.

1 голос
/ 01 февраля 2010

Я не использовал этот инструмент jQuery. Но я бы подумал, что для инструмента потребуется структура

<div id="products">
    <img src="http://static.flowplayer.org/img/commerce/free.png" alt="Free version" />
    <img src="http://static.flowplayer.org/img/commerce/commercial.png" alt="Commercial version" />
    <img src="http://static.flowplayer.org/img/commerce/multidomain.png" alt="Multidomain version" />
</div>

Инструмент будет искать img внутри div (опять же, я не видел код, так что это предположение). Многие плагины jQuery требуют определенного формата.

Я бы сделал это:

 <div id="products">

        <img src="http://static.flowplayer.org/img/commerce/free.png" alt="Free version" id="image1" />
        <img src="http://static.flowplayer.org/img/commerce/commercial.png" alt="Commercial version" id="image2" />
        <img src="http://static.flowplayer.org/img/commerce/multidomain.png" alt="Multidomain version" id="image3" />
    </div>

Добавление идентификаторов к каждому тегу. Я попробовал это, и это, кажется, не сломало плагин. (Извините за ужасное соглашение об именах:))

Затем привяжите щелчок изображений к перенаправлению, используя javascript:

$("#image1").click(function() {
    window.location = 'http://www.google.co.za';
});

$("#image2").click(function() {
    window.location = 'http://www.google.co.za/somwhereelse';
});

$("#image3").click(function() {
    window.location = 'http://www.google.co.za/helloworld';
});

Надеюсь, это поможет

EDIT

Чтобы ответить на ваш вопрос, чтобы показать содержимое второго изображения при загрузке страницы, у меня есть следующее решение. Для меня это немного похоже на обходной путь, но, надеюсь, это сработает.

При загрузке страницы происходит то, что flowplayer скрывает все изображения, кроме первого, с использованием встроенных стилей.

Итак, нам нужно удалить этот стиль из первого изображения и добавить его ко второму изображению. Помните, что это должно происходить только один раз при загрузке страницы, поэтому вам нужно будет добавить его в функцию document.ready.

//make the display attribute of the style none. This will render it invisible
$("#free").css('display','none');
//make the display attribute of the style block (as what Flowplayer does)
$("#commercial").css('display','block');

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

0 голосов
/ 01 февраля 2010

Если вы поместите ссылку с изображением в промежуток, он будет работать.

<span><a href="http://yourlink"><IMG src="./jQuery Tools standalone demo_files/free.png" alt="Free version" class=""></a></span>

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

Преимущество такого способа состоит в том, что он будет проиндексирован как реальная ссылка, а подход javascript - нет.

0 голосов
/ 01 февраля 2010

Я думаю, вам нужно забыть этот плагин, потому что он на самом деле не предназначен для того, чтобы делать то, что вы хотите. Этот плагин предназначен для создания вкладок, а то, что вы показываете, - это вкладки в другой оболочке. И вкладки не открывают URL, они показывают содержание своей панели.

Вам нужна какая-то подсказка. Вот список всплывающих подсказок: http://speckyboy.com/2009/09/16/25-useful-jquery-tooltip-plugins-and-tutorials/

...