2013-03-28 2 views
1

버튼을 클릭 할 때마다 ID에 프로그램을 추가하여 카운터에 1을 추가하려고합니다. 하지만 내 문제는 세 번째 시간을 클릭하면 그것은 단지 2 대신 3 경고 것을 내가 그것을 이 달성의 더 나은 방법이 있나요 가능한까지 가고 싶어, 덕분에 여기 Jquery가 두 개만 추가합니다.

내 코드입니다 :

Var q=1; 
if ($("#"+val).length==0){ 
alert (q) 
}else 
{ 
q=q+1 
alert (q) 
} 

은 var에 Q가 글로벌 모드에 선언되어 있습니다, 내 버튼 클릭의 전체 코드는 여기에 만족 : 나는 그것을 얻을 수 있도록 누군가가 내 코드를 수정할 수 있습니다하시기 바랍니다이 프로그램의 전문가가 아니에요 직장

$(document).on('click',".add", function(){ 

var add=($(this).attr('id')) //this collect the id 

var q=1; 
     var val=($(this).attr("name")) 

if ($("#"+val).length==0) { 

     alert(q) 
}else{ 
q=q+1 
alert(q) 
} 
+0

귀하의 HTML 및/또는 전체 구현을 보여주십시오. – kennypu

답변

0

Var q=1;을 전역으로 선언해야합니다.

Var q=1; 
$('SELECTOR').click(function(){ /* increment code */ }); 

경우 그 바로 다음 무시하거나 문을 종료 ;를 넣어주십시오 오타.

+0

나는 당신의 예제를 시도했지만 여전히 2 또는 3 대신에 1을 얻고있다. 내 코드는 다음과 같다. else {$ ('SELECTOR'). click (function() {q = q + 1;}); alert (q);} –

+1

@david put'var q = 1; 문서의 외부. on' –

+0

덕분에 완벽하게 작동했습니다. 모든 답변 덕분에 그들은 모두 정확합니다. –

0

변수 q를 전역 변수로 선언하면 페이지를 새로 고칠 때까지 페이지 수명주기를 통해 사용할 수 있습니다.

 <script> 
    var q = 1; 
    function Myfunction() 
    { 
    // put your logic here and use the q 
    } 
    </script> 
0

q을 0으로 설정하여 시작하십시오. 당신이 if - else ...

var q = 0; 
$(document).off('click', 'SELECTOR').on('click', 'SELECTOR', function() { 
    q++; 
    alert(q); 
)}; 

편집 건너 뛸 수보다 : 처음에

OKE를, 당신의 var q 당신이 생각하는 것처럼 글로벌 없습니다. 클릭 핸들러 외부에 있어야합니다. 쓴대로, .add을 누를 때마다 q가 1로 설정됩니다.

위 코드는 내 코드를 대체합니다. 하지만 (우리는 우선 한 번했다) ...이 더욱 필요에 맞게

var q = 0; 
$(document).off('click', '.add').on('click', '.add', function() { 
    var add = $(this).attr('id'); 
    var val = $(this).attr("name"); 
    if($('#'+val).length != 0) { 
     q++; 
     alert(q); 
    } 
    else { 
     alert(q); 
    } 
)}; 

참고 적응할 수 있습니다 : 내가 먼저 단지의 경우 .off()를 사용합니다. 나는 이렇게하면 좋겠지 만 남겨 두지 않으면 .on() ...

희망이 도움이되었습니다.

+0

내 최신 게시물을 검토하고 제안 된 코드를 붙여 넣을 곳을 알려주십시오. –

+0

@DavidBukera 나는 내 대답을 업데이트했습니다. – Brainfeeder

관련 문제