2013-03-28 33 views
1

我試圖讓我的程序每次點擊一個按鈕並且id存在時,向計數器加1; 但我的問題是,當你點擊第三次,只提醒2,而不是3,我希望它上升到儘可能 是否有實現這一目標的任何更好的方法,謝謝jquery加起來只有兩個

這裏是我的代碼:

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

請在這裏是我的按鈕點擊的完整代碼,請注意變種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 2013-03-28 03:33:44

回答

0

您需要聲明爲全局的Var q=1;

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

如果只是錯字則忽略或請把;結束髮言。

+0

我試過你的例子,但我仍然得到1而不是2或3這裏是我的代碼:} else {$('SELECTOR')。click(function(){q = q + 1;}); alert(q);} – 2013-03-28 13:50:26

+1

@david put'var q = 1; ''在文件外面。 ' – 2013-03-28 14:11:26

+0

感謝它工作完美,感謝所有的答案,我相信他們都correc – 2013-04-18 21:40:28

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

請你可以檢討我的最新帖子,並告訴我在哪裏貼你的建議代碼,謝謝 – 2013-03-28 13:42:54

+0

@DavidBukera我更新了我的答案。 – Brainfeeder 2013-03-29 08:01:21

相關問題