jQuery每次元素都有类时执行代码

时间:2012-01-09 14:03:04

标签: javascript jquery loops

每次特定元素在jQuery中都有某个类时,我都会尝试执行一段代码。

我遇到的问题是代码只执行一次,然后似乎不活跃。我正在使用if语句,但我也尝试过。当我尝试的时候,没有什么真的有效,所以这不是一个好主意。有什么解决方案吗?这是代码:

if($(".slide:first").hasClass("active-slide")) {
    $(".prev").hide();
    $(".next").click (function () {
        $(".prev").show();
    });
}

2 个答案:

答案 0 :(得分:2)

JQuery查询只执行一次。你可以在一个区间内执行它:

var checkPage = function(){
    if($(".slide:first").hasClass("active-slide")) {
        $(".prev").hide();
        $(".next").click (function () {
            $(".prev").show();
        });
    }
}

var intrvl = setInterval( checkPage, 300 );

这可能有用,但在大页面上可能会变得很慢。

我宁愿将checkPage()函数附加到幻灯片更改事件。

答案 1 :(得分:1)

将其包裹在each()中,以便每次滑块执行时:首先发生。

$(".slide:first-child").each(function(){
   // your function goes here    
});

编辑::first仅定位页面上的第一个实例,因此无论如何它只会触发一次。您可能正在寻找:first-child