【问题标题】:jQuery Cycle - creating pager links from link inside divjQuery Cycle - 从 div 内的链接创建寻呼机链接
【发布时间】:2011-11-02 02:30:25
【问题描述】:

我正在为网站的首页制作一个导航,我正在尝试让 Cycle 使用来自 div 中包含的链接的自定义寻呼机链接。

这是我当前的代码:

$('#nav-cycle').before('<ul id="nav">').cycle({ 
    fx:     'turnLeft', 
    speed:  'fast', 
    timeout: 9001,
    pagerEvent: 'click',
    pauseOnPagerHover: 1,
    pager:  '#frontpage-nav', 
    allowPagerClickBubble: true, 
    pagerAnchorBuilder: function(idx, slide) { 
         return '<li><a href="#">' + slide.title + '</a></li>';
    } 
});

我需要它来使用每张幻灯片的 div 中包含的链接中的 href 作为寻呼机链接。我发现了一个与此类似的问题,但无需获取内部链接。

按要求提供 HTML,去除所有 PHP:

<div id="frontpage-nav"></div>

<div id="nav-cycle">
<div class="nav-cycle-item" title="(page title)">
<p class="nav-item-description">(page description text)</p>
<span class="page_link"><a href="(link)">(page title)</a></span>
</div>

【问题讨论】:

    标签: jquery cycle jquery-cycle


    【解决方案1】:

    pagerAnchorBuilder函数中,“slide”指的是当前的&lt;div class="nav-cycle-item"&gt;。要在每个div 中获取每个&lt;a&gt; 标记的href,只需使用jQuery 选择器找到子&lt;a&gt; 并获取它的href 值:

    $('#nav-cycle').before('<ul id="nav">').cycle({ 
        fx:     'turnLeft', 
        speed:  'fast', 
        timeout: 9001,
        pagerEvent: 'click',
        pauseOnPagerHover: 1,
        pager:  '#frontpage-nav', 
        allowPagerClickBubble: true, 
        pagerAnchorBuilder: function(idx, slide) { 
            var href = $(slide).children('span').children('a').attr('href');
            return '<li><a href="' + href + '">' + slide.title + '</a></li>';
        } 
    });
    

    顺便说一句,我假设您在上面的 HTML 中缺少结束 div

    【讨论】:

    • 您确定prop 合适吗?我认为你应该使用attr. api.jquery.com/prop
    • 这对我不起作用,直到将 pagerEvent 更改为 mouseover,但现在当我在链接之间使用鼠标时,过渡消失了。不过,当将鼠标从幻灯片移动到链接时,我仍然会得到它们。
    • @kkjelgard:我不确定我是否理解。究竟是什么行不通?据我了解您的问题,您希望寻呼机链接包含与幻灯片中包含的 a 标记相同的 href 值,对吗?这就是上面代码的作用。这是一个带有极其简化演示的 jsFiddle:jsfiddle.net/DVVrr/1 您能否提供有关您要查找的内容的更多详细信息?
    • 您的代码适用于我在这篇文章中提出的要求,因此我会将其标记为已回答。谢谢您的帮助!现在的问题(我认为以前也可能发生过)是当我在寻呼机链接之间拖动鼠标时没有过渡。如果您不知道快速解决方法,我会继续寻找。
    • @kkjelgard:我很乐意提供帮助。不过,我似乎无法复制您的最新问题:jsfiddle.net/DVVrr/3 当我将鼠标悬停在每个寻呼机链接上时,我会从左侧看到下一个幻灯片过渡。我错过了什么吗?你能创建一个复制问题的 jsFiddle 吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多