2014-10-22 45 views
0

我有增加数问题,在一个单位当我打电话功能和onclick事件增加数量和的onclick

我有这样的:

function caller() {  
    counter = 0; 

    alert("ok" + counter); 

    jQuery(".db_header_general" + number).click(function() {  
     alert("ok" + counter); 
     counter++; 
    }); 
} 

在这种情况下,如果我调用该函数总是警报告诉我“0”,如果我调用函数并使用事件onclick是结果它是正确的1,2,3,4等,问题是如果我去激活功能没有继续最后一个计数器号码并始终显示“0”

I需要例如呼叫功能,并显示1,2,3,如果事件点击它的激活继续,并从最后一个计数器号码+1,但问题 - 我不能得到作品 - 。 it's没有与最后一个号码

还继续我尝试这个

function caller() { 
    counter=0; 

    alert("ok"+counter); 

    jQuery(".db_header_general"+number).click(function() { 
     alert("ok"+counter); 
    }); 
    counter++; 
} 

柜台外click事件的使用,也是同样的结果,并没有对我的作品

Thank's并致以最大的问候

+3

将计数器变量放在函数之外。 Currentyl,您每次调用该方法时都会重置它。 – 2014-10-22 12:19:35

+1

@ boulder_02权利。你确定,每次调用'caller'函数时,你想要添加'click'事件处理程序吗? – idlerboris 2014-10-22 12:21:48

回答

1

你应该把柜台之外的功能。使用当前的功能时,当您呼叫该功能时,计数器值设置为0.是否如此

var counter = 0; 

function caller() 
{ 
    // functionality 
    counter++;  
} 
+1

这是正确的,但是如果'counter'会在全局范围内 - 真的很糟糕的做法。 – idlerboris 2014-10-22 12:28:28

1
counter=0 

每次调用函数时都会执行,因为它是局部变量。所以每次调用你的函数时,你都要将计数器设置为0.使计数器成为全局变量,它将起作用。

举例说:

<script type="text/javascript"> 
var counter = 0; 
function caller(){ 
    alert("ok"+counter); 
    jQuery(".myBtn").click(function() { 
     alert("ok"+counter); 
     counter++; 
    }); 
} 

+0

你能举个例子吗?谢谢 – Francisco 2014-10-22 12:18:55