необычный открытый относительный div - PullRequest
0 голосов
/ 22 марта 2011

Я пытаюсь выяснить, как открыть div в fancybox относительно ссылки, по которой щелкнули.

<div class="tool">              
    <ul>            
        <li><span class="more-info"><a href="#" title="View more info">?</a></span>         
            <div class="help">This is the help text</div>           
        </li>
    </ul>
</div>

Я знаю, что могу добавить что-то вроде #uniqueDiv к a и затем div с идентификатором uniqueDiv, однако я бы предпочел, чтобы при нажатии на ссылку открывался ближайший div с классом help.

Я попробовал что-то подобное без удачи:

$('.more-info a').click(function(e){
    $(this).parent().next().fancybox();
    e.preventDefault();
});

Любая помощь будет высоко ценится.

-Ryan

1 Ответ

0 голосов
/ 23 марта 2011

Я думал об этой проблеме еще несколько часов и решил подойти к ней по-другому, так как я был почти в тупике.Я думал, что если я не могу нацелить относительный div, возможно, тогда я смогу автоматически назначить значения href и id, чтобы на каждую ссылку можно было ориентироваться через ее идентификатор.

Это на самом делеотлично сработал и отвечает всем моим требованиям:

$('.more-info a').each(function(index){
    var x = index + 1;
    $(this).attr('href', '#box' + x);
    var li = $(this).parent().parent();
    $('.help', li).attr('id', 'box' + x);
}).fancybox();
  1. $('.more-info a').each(function(index){ Я нацеливаюсь на все свои ссылки и перебираю их.
  2. var x = index + 1; Индекс начинается с 0, нодля удобства чтения я начинаю с 1.
  3. $(this).attr('href', '#box' + x); Я беру значение href текущей ссылки (в настоящее время #) и заменяю его на #box[INDEX], где index - это уникальное, автоматически увеличивающееся число.
  4. var li = $(this).parent().parent(); Я перемещаю назад элементы представления, чтобы я мог отточить свой скрытый div .help.
  5. $('.help', li).attr('id', 'box' + x); Теперь я нацеливаюсь на .help div и добавляю атрибутназывается id и установите его на box[INDEX].Теперь у меня есть необходимая связь между ссылкой и скрытым div, чтобы fancybox мог творить чудеса.
  6. }).fancybox(); Это позволяет fancybox узнать, как открыть с ним мои ссылки.

Функции jQueryиспользуется: .each () , .attr () , .parent ()

Любые предложения или улучшения по-прежнему приветствуются.

-Райан

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