2012-03-21 9 views
4

에서 다른 함수에 매개 변수로 나는이를 전달할 수 있습니다나는 "이"자바 스크립트

$('#slider li').click(function() { 
    var stepClicked = $(this).index(); 
    alert(stepClicked); 
    if (stepClicked != 0) { 
     $('#cs_previous').removeClass('cs_hideMe'); 
    } else { 
     $('#cs_previous').addClass('cs_hideMe'); 
    } 

    $('li.cs_current').removeClass('cs_current'); 
    $($(this)).addClass('cs_current'); 


    moveToNextImage(stepClicked); 

    function moveToNextImage(stepClicked) { 
     alert(stepClicked); 
     var currentIs = $('li.cs_current').index(); 
     var newLeftEdge = currentIs - stepClicked; 
     $('.cs_riskStageImage').fadeTo(200, .2).animate({ 
      left: newLeftEdge 
     }, "fast").fadeTo(200, 1); 
    }; 
}); 

경고가 리튬 클릭에 대한 적절한 인덱스를 보여줍니다, 그리고 마지막 기능 I 내에서 변수를 경고 할 때 'm calling, moveToNextImage(stepClicked), 동일한 값이 표시되지만 애니메이션이 발생하지 않습니다. 이것은 다른 많은 방법으로 작동하지만 계산할 수학에 사용하기 위해 클릭 한 목록 항목의 인덱스 값을 전달하려고합니다.

.. 또는 두 번째로 전달할 수있는 첫 번째 함수의 다른 변수로 값을 변환 할 수 있습니까?

+0

"javascript의 다른 함수에"this "를 매개 변수로 전달할 수 있습니까? 예, 현재 개체에 대한 참조가있는 일반 변수입니다. 그게 어떤 문제 야? – zerkms

+0

http://www.quirksmode.org/js/this.html – zod

+1

'$ ($ (this))'는 단지'$ (this)'이어야합니다. –

답변

1

같은 자바 스크립트 기능을해야 의미 어떤 코드에서

moveToNextImage(this, stepClicked); 

function moveToNextImage(obj, stepClicked) { 
    var index = $(obj).index; 
} 

같은 다른 기능이 전달할 수 call()apply()은 둘 다 호출 용도로 정확하게 사용됩니다. 문맥 내의 함수. 그것은 callSum()applySum() 기능에서와 같이

jsfiddle example link

function sum() { 
    return this.num1 + this.num2; 
} 

function callSum(num1, num2) { 
    this.num1 = num1 
    this.num2 = num2 
    return sum.call(this);  //call sum() in the context of this 
} 

alert(callSum(10, 15)); 

function applySum(num1, num2) { 
    this.num1 = num1 
    this.num2 = num2 
    return sum.apply(this); //call sum() in the context of this 
} 

alert(applySum(30, 45)); 

이제 sum() 함수에서 this 키워드는 같은 맥락을 가지고 있었다.

call()apply()의 차이는 적용 할 두 번째 매개 변수는 전달할 매개 변수 배열이거나 arguments 개체라는 것입니다.

+0

문제는 +가 숫자 연산자이고 문자열 concantenation, 다른 변수와 함께 "this"를 보유하고있는 변수를 추가하려고 할 때 결과는 새로운 문자열입니다 .... 인덱스 값을 분석하여 생각할 필요가 있습니다 .... 감사합니다. 모두, 나는이 모든 것을 검토 할 필요가있다. 나는 적절한 응답을 표시 할 것이다. –

+0

물론 걱정하지 마십시오. 다른 사람들이 질문 한 제목을 검색 할 것이므로 제목에 질문에 대답하는 대답을 표시하면 가장 도움이된다는 것을 기억하십시오. 앞으로 특정 컨텍스트 내에서 메소드를 호출해야 할 경우 자바 스크립트 언어가 제공하는 메소드입니다. –

3

당신은이 줄

$($(this)).addClass('cs_current'); 

그것이

$(this).addClass('cs_current'); 
+0

네, 맞습니다 ... 저는 인덱스와 값을 가진 다른 것들을 시도하고있었습니다. 이건 그냥 $ (this) 일 것입니다 ... kj –

관련 문제