2012-12-18 3 views
2

지금 jQuery를 - catch되지 않은 유형 오류 : 문자열 함수

무엇이 잘못 될 수이 jQuery - Uncaught Type Error: string is not a function 오류를 받고 있어요 아닌가요?

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

는 뭔가 다른 slider 이름을 바꾸고 당신이 볼 코드의 두 블록있어 (잘 작동합니다 : 아래

당신이 충돌하는 변수 이름이 내 코드

$(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))' 
      }); 
     }); 
    } 

}); 
+2

문자열을'slider'에 할당하고 함수로 호출하려고합니다. 함수가 아니므로 오류가 발생합니다. '슬라이더 '는 무엇을 의미합니까? –

+0

'slider'는 맨 아래에 선언 된 함수입니다. 그래도 여전히 덮어 씁니다. – Niko

답변

5

입니다 이런 식으로) :

slider1 = '#slider-one'; 
    tab = '#tabs-1'; 
    slider(inputs,slider1,tab); 
관련 문제