2017-10-06 1 views
0

저는 프로그래밍에 익숙하지 않고 Javascript로 할 일 목록을 프로그래밍하려고하고 있으며 JQuery를 실험 중입니다. 온라인으로 취소 선 애니메이션을 발견했습니다. 목록에 구현하고 싶었지만이 두 줄의 코드가 무엇인지 잘 모르고 누군가가 나를 위해 정교하게 해석 할 수 있는지 궁금해했습니다. 취소 선 기능은 다음과 같다 :이 코드 라인은 어떤 기능을합니까?

//var _Text sets the _Text to the individual list item 
var _text = document.getElementById("item_" + cbId); 
$(document).ready(function() { 
_text = $(itemText).text(); 
StrikeThrough(0); 
}); 
//Strikethrough animation function 
function StrikeThrough(index) { 
    if (index >= _text.length) 
     return false; 
    var sToStrike = _text.substr(0, index + 1); 
    var sAfter = (index < (_text.length - 1)) ? _text.substr(index + 1, 
_text.length - index) : ""; 
    $(itemText).html("<strike>" + sToStrike + "</strike>" + sAfter); 
    window.setTimeout(function() { 
     StrikeThrough(index + 1); 
    }, 100); 

I에 대한 혼란 스러워요 두 라인은 다음과 같습니다

var sToStrike = _text.substr(0, index + 1); 
var sAfter = (index < (_text.length - 1)) ? _text.substr(index + 1, _text.length - index) : ""; 

은 내가 대해 특별히 혼란 스러워요 것은 이러한 변수가 정확히

+0

첫 번째 줄 호출 ['SUBSTR()'] (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/substr) 문자열의 일부를 가져 오는 데 사용됩니다. 두 번째 줄은 압축 된 'if'조건 인 ['3 진 표현식 '(https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Conditional_Operator)입니다. –

+0

때때로 코드를 이해하는 가장 좋은 방법은 JS 디버거를 사용하는 것입니다. 예를 들어 문제의 줄 앞에 'debugger'문을 넣은 다음 JS 콘솔에서 실험하는 것입니다. –

답변

0
로 설정되고있는 것입니다

sToStrike은 현재 색인 위치의 처음부터 다음 문자까지의 텍스트로 설정됩니다. sAfter 색인이 마지막 문자가 아닌 경우 나머지 문자열이 설정됩니다.

,
0

이 줄 sToStrike 할당 인덱스 0 행 인덱스 index + 1-_text의 하위 :

var sToStrike = _text.substr(0, index + 1); 

이 라인/IF 다른 인라인 인 삼원 표현을 포함한다. 그것은 인덱스 _text.length - index 또는 각 순서, True 또는 False로 평가 index < (_text.length-1)"" 따라 빈 문자열로 인덱스 index + 1에서 _textsAfter 문자열 중 하나를 할당합니다

var sAfter = (index < (_text.length - 1)) ? _text.substr(index + 1,_text.length - index) : ""; 
관련 문제