2

今、このjQuery - Uncaught Type Error: string is not a functionエラーが発生しています

何が間違っている可能性がありますか?

以下は私のコードです

$(function(){
    $('#tabs').tabs();
    inputs = $('input[type="range"]#defaultSlider');
    slider = '#slider-one';
    tab = '#tabs-1';
    slider(inputs,slider,tab);

    var firstTab = $('#tabs ul li')[0];
    var secondTab = $('#tabs ul li')[1];
    $(firstTab).live('click',function(){
        $('#slider-two').hide();
        $('#slider-one').show();
        inputs = $('input[type="range"]#defaultSlider');
        slider = '#slider-one';
        tab = '#tabs-1';
        slider(inputs,slider,tab);
    });
    $(secondTab).live('click',function(){
        $('#slider-two').show();
        $('#slider-one').hide();
        inputs = $('input[type="range"]#defaultSlider-2');
        slider = '#slider-two';
        tab = '#tabs-2';
        slider(inputs,slider,tab);
    });

    function slider(inputs, slider, tab){
        $(inputs).live('change',function (event) {
            console.log(inputs);
            var updatedRangeValue = event.target.value;
            var currentValue = updatedRangeValue - 1
            currentStep = $(slider + ' dl.steps dt')[currentValue];
            $(slider + ' dl.steps dt').removeClass('active');
            $(currentStep).addClass('active');
            var currentArticle = $(tab + ' article')[currentValue];
            $(tab + ' article').hide();
            $(currentArticle).show();

            value = (event.target.value - event.target.min)/(event.target.max - event.target.min);
            $(event.target).css({
                backgroundImage: '-webkit-gradient(linear, left top, right top, color-stop(' + value + ', #007fb0), color-stop(' + value + ', #024069))'
            });
        });
    }

});
4

1 に答える 1

5

競合する変数名があります:

    slider = '#slider-one';     // You re-define `slider` here
    tab = '#tabs-1';
    slider(inputs,slider,tab);  // Then you try to call the original `slider`

別の名前に変更sliderすると、問題なく動作するはずです (次のような 2 つのコード ブロックがあります)。

    slider1 = '#slider-one';
    tab = '#tabs-1';
    slider(inputs,slider1,tab);
于 2012-12-18T10:38:27.463 に答える