最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

javascript - jQuery Cycle plugin pagerAnchorBuilder images becoming undefined - Stack Overflow

programmeradmin1浏览0评论

I have a slideshow built in flash that I want to mimic in jQuery. The slide show uses the images from the slideshow as the pager numbers. The problem im having is once i apply links to the slideshow images the pagerAnchorBuilder image returns an undefined for the src of the image.

Javascript -

$(function() {
$('#slideshow').before('<ul id="nav">').cycle({
    fx:     'fade',
    timeout: 7000,
    pager:  '#nav',
    pagerAnchorBuilder: function(idx, slide) {
    return '<li><a href="#"><img src="' + slide.src + '" width="100" height="60" /></a></li>';
    }
});  
});

HTML -

<div id="slideshow" class="pics"> 
    <a href=""><img src="home_1.jpg" width="1000" height="600" /></a>
    <a href=""><img src="home_2.jpg" width="1000" height="600" /></a>
    <a href=""><img src="home_3.jpg" width="1000" height="600" /></a> 
    <a href=""><img src="home_4.jpg" width="1000" height="600" /></a> 
    <a href=""><img src="home_5.jpg" width="1000" height="600" /></a> 

</div> 

If i remove the href's from the slideshow the images in the pager show up without issues. Im not sure if this is a bug or something i need to find a fix for?

Here is the answer -

$(function() {
$('#slideshow').before('<ul id="nav">').cycle({
    fx:     'fade',
    timeout: 7000,
    pager:  '#nav',
    pagerAnchorBuilder: function(idx, slide) {
      var img = $(slide).children().eq(0).attr("src");
      return '<li><a href="#"><img src="' + img + '" width="100" height="60" /></a></li>';
    }

});

});

I have a slideshow built in flash that I want to mimic in jQuery. The slide show uses the images from the slideshow as the pager numbers. The problem im having is once i apply links to the slideshow images the pagerAnchorBuilder image returns an undefined for the src of the image.

Javascript -

$(function() {
$('#slideshow').before('<ul id="nav">').cycle({
    fx:     'fade',
    timeout: 7000,
    pager:  '#nav',
    pagerAnchorBuilder: function(idx, slide) {
    return '<li><a href="#"><img src="' + slide.src + '" width="100" height="60" /></a></li>';
    }
});  
});

HTML -

<div id="slideshow" class="pics"> 
    <a href="http://google."><img src="home_1.jpg" width="1000" height="600" /></a>
    <a href="http://google."><img src="home_2.jpg" width="1000" height="600" /></a>
    <a href="http://google."><img src="home_3.jpg" width="1000" height="600" /></a> 
    <a href="http://google."><img src="home_4.jpg" width="1000" height="600" /></a> 
    <a href="http://google."><img src="home_5.jpg" width="1000" height="600" /></a> 

</div> 

If i remove the href's from the slideshow the images in the pager show up without issues. Im not sure if this is a bug or something i need to find a fix for?

Here is the answer -

$(function() {
$('#slideshow').before('<ul id="nav">').cycle({
    fx:     'fade',
    timeout: 7000,
    pager:  '#nav',
    pagerAnchorBuilder: function(idx, slide) {
      var img = $(slide).children().eq(0).attr("src");
      return '<li><a href="#"><img src="' + img + '" width="100" height="60" /></a></li>';
    }

});

});

Share Improve this question edited Mar 18, 2010 at 18:57 Casey Becking asked Mar 18, 2010 at 17:39 Casey BeckingCasey Becking 1372 silver badges15 bronze badges
Add a ment  | 

4 Answers 4

Reset to default 3

I used JQuery.find() to help find the images, and to keep the code modular enough to use with different markup:

pagerAnchorBuilder: function(idx, slide) {
    return '<li><a href="#"><img src="'
        + jQuery(slide).find('img').attr('src')
        + '" width="120" /></a></li>'; 
}

Read this may help you!

jQuery Cycle pagerAnchorBuilder

With reference to JVerstry's ment (nice one JV btw!), I got the following going just fine which uses the image and <a>link. Also the pager thumbs also show the main image alt attribute:

return '<li class="slider-thumb"><a href="'+slide.href+'" id="pager-click" title="'+slide.title+'"><img src="'+ $(slide).find('img').attr('src')+'" width="90" height="69" class="fader" /></a><p class="slide-caption">'+ $(slide).find('img').attr('alt')+'</p></li>';

Seems to be a mon problem! Check out cycle with anchors and also cycle's "slideExpr"

发布评论

评论列表(0)

  1. 暂无评论