2012-02-13 4 views
0
//this counts how many images exist 
    var img_count = $("#gallery_scroller img").length; 
    //this is a number where I want the clicks to stop working 
    var limit_count = img_count/3; 

    var click_count = 1; 

    if (limit_count > click_count){ 

    $("#down_arrow").click(function(){ 
     click_count++ 
     var css_position = -1*click_count*300; 
     $('#gallery_scroller img').css('top', css_position); 
     alert(css_position+' '+limit_count+' '+click_count); 
    }); 
    }; 

클릭 할 때마다 값을 볼 수 있도록 경고가 표시됩니다. click_count가 limit_count보다 큰 경우에도 계속 진행됩니다. if 조건에서 click_count를 limit_count보다 큰 실제 숫자로 바꿉니다.Javascript if 문이 올바르게 작동하지 않습니다.

+0

이 click_count'이후에 세미콜론을 추가 ++' –

답변

3

if 문이 click 이벤트 처리기의 코드에 없습니다. 핸들러가 연결되면 코드가 안에 있어야만 클릭이 발생할 때 핸들러가 실행됩니다.

나는 전적으로 당신의 원하는 결과가 무엇인지 모르겠지만, 이것은 아마도 가까운 :

//this counts how many images exist 
var img_count = $("#gallery_scroller img").length; 
//this is a number where I want the clicks to stop working 
var limit_count = img_count/3; 

var click_count = 1; 

$("#down_arrow").click(function(){ 
    if (limit_count > click_count){ 
     click_count++; 
     var css_position = -1*click_count*300; 
     $('#gallery_scroller img').css('top', css_position); 
     alert(css_position+' '+limit_count+' '+click_count); 
    } 
}); 

는 예를 들면, 이벤트 핸들러 코드 내 테스트 을 넣어.


사이드 노트 : 나는 click_count++ 후 세미콜론을 추가했습니다 : if 블록에 중괄호의 끝에 세미콜론이 필요, 예컨대 :

if (...) { 
    }; 
// ^--- no semi here 

사이드 노트 2가 없습니다. 그것 없이는, 너는 automatic semicolon insertion 인 공포에 의지하고있다. 그 뒤에 줄 바꿈이 있었으므로 괜찮 았지만 일반적으로 세미콜론이있는 곳의 규칙을 배우고 필요할 때 항상 포함 시키십시오.

0

당신의 조건은 이벤트 핸들러 내부에 있어야합니다 :

var click_count = 1; 

$("#down_arrow").click(function(){ 
    if (click_count < limit_count){ 
    click_count++; 
    var css_position = -1*click_count*300; 
    $('#gallery_scroller img').css('top', css_position); 
    alert(css_position+' '+limit_count+' '+click_count); 
    }; 
}); 
0
$("#down_arrow").click(function(){ 
if (limit_count > click_count){ 
    click_count++ 
    var css_position = -1*click_count*300; 
    $('#gallery_scroller img').css('top', css_position); 
    alert(css_position+' '+limit_count+' '+click_count); 
    }; 
}); 
관련 문제