2016-09-21 6 views
-1

편집 : https://jsfiddle.net/qmgob1d5/3/예기치 않은 동작이

내가로부터의 요소를 강조하도록되어 JQuery와 스크립트를 가지고 사람이, 이제까지 어떤 이유로이 스크립트가 필요한 경우, 나는 깨끗하고 완벽하게 작동 버전을 만든 - 방식으로. 거꾸로 작동해야합니다. 여기가 작동 중입니다. https://jsfiddle.net/qmgob1d5/

두 번째 요소로 0을 선택하기 전까지는 정상적으로 작동합니다. 그런 다음 var Start = Math.min(ClickOne, ClickTwo || 16);이 예상대로 작동하지 않는 것 같습니다. 무엇이 잘못 되었습니까? ClickTwo0 경우

var FirstClick; 
var ClickOne; 
var ClickTwo; 
$('.ColorPreview').on('click',function() { 

var ColorId = $(this).attr('id'); 
    ColorId = Number(ColorId.split('_')[1]); 

    if (!FirstClick) { 
     //reset function 
     for (var i = 0; i < 16; i++) { 
     $('#Color_' + i).removeClass('SelectColor'); } 
     var ClickTwo; 

     ClickOne = ColorId; 
     FirstClick = true; 
     } 

    else { 
     ClickTwo = ColorId; 
     FirstClick = false; } 

console.log('ClickOne ' + ClickOne) 
console.log('Clicktwo ' + ClickTwo) 

var Start = Math.min(ClickOne, ClickTwo || 16); 
var End = Math.max(ClickOne, ClickTwo || 0); 

console.log('start ' + Start) 
console.log('end ' + End) 

    for (var i = Start; i <= End; i++) { 
    $('#Color_' + i).addClass('SelectColor'); } 

}); 
+2

'ClickTwo || 16 '할까? – Pointy

+1

"예상대로 작동하지 않는 것 같습니다." 예상되는 행동은 무엇이며 어떤 행동을합니까? – Goose

답변

2

는, 표현 ClickTwo || 1616로 평가됩니다 여기

는 스크립트입니다.

은 함수의 시작 부분에 16-ClickTwo를 초기화 다른

var Start = Math.min(ClickOne, ClickTwo == null ? 16 : ClickTwo); 

또는보십시오.

+0

감사합니다! 웬일인지, 나는 ClickTwo를 생각했다. || ClickTwo가 null 인 경우 16은 16으로 평가됩니다. – Nah

+2

@ user2999177 'ClickTwo'가 '0', '' ','NaN ','null ','undefined '또는'false '인 경우'16 '이됩니다. – Pointy