jQuery函数不适用于特定元素?

时间:2015-11-18 10:10:35

标签: jquery

我的功能不适用于元素a.left,有人可以告诉我为什么会这样吗?

<section class="slideshow-control" style="">
    <a class="left" href="#">
        <span>«</span>
    </a>
    <a class="right" href="#">
        <span>»</span>
    </a>    
</section>
var sc = sc.find('.slideshow-control');
var sw = sc.find('.slideshow-wrapper');

sc.find('a.left').click(function() {
    var swl = Math.min(0, parseInt(sw.css('left')) + sesw);
    sw.animate({ 'left': swl }, 800, 'easeInOutCirc');
    return false;
});

1 个答案:

答案 0 :(得分:0)

您的代码中存在一些错误,缺少某些变量。 如果我承担你脚本的行为,下面的jsfiddle应该可以工作:

working fiddle

您需要设置2件事并查看您的html:

<section class="slideshow-wrapper" style="">
  <section class="slideshow-control" style="">
    <a class="left" href="#"><span>«</span></a>
    <a class="right" href="#"><span>»</span></a>
  </section>
</section>

添加此css,以便元素可以应用左自动动画:

.slideshow-wrapper {
  position:relative;
  left: 0;
}

左右css属性适用于相对/绝对定位元素。

而不是运行js:

var sc = $('.slideshow-control');
var sw = $('.slideshow-wrapper');

sc.find('a.left').click(function() {
    moveBy = parseInt(sw.css("left"))-100;
    if(moveBy >= 0)
        sw.animate({ 'left': moveBy });
    return false;
});
sc.find('a.right').click(function() {
    moveBy = parseInt(sw.css("left"))+100;
    if(moveBy < $(document).width())
        sw.animate({ 'left': moveBy }, 'easeInOutCirc');
    return false;
});

我添加了一些控件以防止元素从文档中消失。 你可以从这开始,添加一些其他变量或用你的行为重写它。