-2

我的公司有一个由设计机构创建的网站。他们使用定制的 CMS,这使得进入网站的原始代码变得非常困难。我一直试图用我们的图像滑块来捕捉一个特定的错误。

http://informedfamilies.org/

当您单击滑块中的导航按钮(“1、2、3、4、5”)时,滑块会切换到相应的图像,但只是第一次。如果您再次单击另一个按钮,则滑块不会更改。图像下方的阴影似乎变暗了,所以我假设图像根本不会消失,只是堆叠在主图像下方。

任何解决此问题的帮助将不胜感激。

相关代码:

$('#home_features .listeditem').wrapAll('<div id="fade" />');
$('#fade').css('background', 'transparent');

var featureCt = $('#fade .listeditem').length;
if (featureCt > 1) {
    $('#home_features').each(function() {
        var controlDiv = $('<div />').attr('id', 'switcher');
        for (var i = 1; i <= featureCt; i++) {
            var control = $('<a href="#" class="selector" id="s' + i + '">' + i + '</a>');
            if (i == 1) control.addClass('selected first');
            if (i == featureCt) control.addClass('last');
            controlDiv.append(control);
        }
        $(this).append(controlDiv);
        controlDiv.append('<a href="#" class="selector" id="stop">||</a>');
        controlDiv.append('<a href="#" class="selector" id="start" style="display: none;">&#9654;</a>');
    });
}
$("#fade").innerfade({
    speed: 2000,
    timeout: 5000,
    containerheight: 440,
    tracker: "switcher",
    trackerclass: "selected",
    repeat: 1
});    
$(".selector").click(function() {
    if (this.id == "stop" || this.id == "start") {
        return;
    }

    if($("#fade").data("timer")) {
        clearTimeout($("#fade").data("timer"));
        $("#fade").removeData("timer");
        $("#stop").hide();
        $("#start").show();
    }

    var id = Number(this.id.substr(1));
    $(".selector").removeClass("selected");
    $(this).addClass("selected");

    $("#fade>div:visible").fadeOut(1);
    $("#fade>div.item" + id).fadeIn(1, function() {
        $('body').removeMatchedClasses({ pattern: /^slide/ });
        $('body').addClass('slide' + (id - 1));
    });

    var num = $("#fade").data("num_elements");
    if (id < num) {
        $("#fade").data("next", id);
    } else {
        $("#fade").data("next", 0);
    }
    return false;
});
$("#stop").click(function() {
    clearTimeout($("#fade").data("timer"));
    $("#fade").removeData("timer");
    $("#stop").hide();
    $("#start").show();
    return false;
});
$("#start").click(function() {
    $("#start").hide();
    $("#stop").show();
    $(".selector").removeClass("selected");
    $("#fade").innerfade({
        speed: 2000,
        timeout: 10000,
        containerheight: 440,
        tracker: "switcher",
        trackerclass: "selected"
    });
    var id = $("#fade").data("next");
    $("#s" + id).addClass("selected");
    return false;
});
4

1 回答 1

0

滑块方法在 site.js 的第 37 行实例化。在第 81 行,我在单击每个选择器时看到以下错误:

Uncaught TypeError: Object [object Object] has no method 'removeMatchedClasses' 

没有函数声明removeMatchedClasses。它根本不存在。

他们试图做的是/^slide/body.

我的建议是将第 81 行替换为以下内容:

$('body').removeClass(function(i, c) {
  return c.match(/^slide/).join(" ");
});

让我知道这对你有用。

于 2012-08-09T14:00:13.957 回答