在 Jquery 中使用选择器而不是“this”

Use a Selector instead of "this" in Jquery

本文关键字:this 选择器 Jquery      更新时间:2023-09-26

也许这是一个愚蠢的问题。但我真的无法理解。

我正在使用Jquery Cycle2。经过一些个性化之后,我遇到了一个简单的问题。我需要知道当前幻灯片的"索引"是什么。

在插件的网站上,人们找到了这行代码,它完美地工作。

$('#cycle-1 .cycle-slide').click(function(){
    var index = $('#cycle-1').data('cycle.API').getSlideIndex(this);
    alert(index);
});

它给了我正确的索引。但是当单击另一个元素时,我正在尝试捕获此索引。所以我不能使用参数(这个)。

然后我试了这个。

$('.anotherelement').click(function(){
    var mycycle = $('#cycle-1 .cycle-slide');
    var index = $('#cycle-1').data('cycle.API').getSlideIndex($(mycycle));
    alert(index);
});

它不会返回我当前的幻灯片索引。它返回"-1"。有谁知道我应该如何将对象(选择器)作为参数传递给getSlideIndex()?

非常感谢:D

可以使用

$('.cycle-slideshow').data('cycle.opts').currSlide获取当前幻灯片索引

$('.anotherelement').click(function(){
    var index = $('.cycle-slideshow').data('cycle.opts').currSlide;
    var currSliderNum = index+1;
    alert(currSliderNum);
    return false;
});

小提琴

在第一段代码中,this是一个 DOM 元素,而不是一个 jquery 对象。 试试这个:

var index = $('#cycle-1').data('cycle.API').getSlideIndex(mycycle[0]);

但是,据推测,您有多个.cycle-slide元素。 这将得到第一个。 在您的第一个代码中,您可以访问单个代码,因为只单击了一个代码。 您需要决定要在此处定位哪一个。