JavaScript增加一个变量

JavaScript增加一个变量

问题描述:

我想通过点击一个链接增加JavaScript中的变量,它的作品第一次,但其后每隔一次,如果我点击它,一旦它会显示3次,然后4,5等等。 控制台的屏幕截图: enter image description hereJavaScript增加一个变量

在蓝色(右)如预期中的数字,没有什么不对的,但你可以在左侧看到,每一行是一个点击。第一个日志很好,但它记录了三次,然后是四次。

这是做这项工作的代码。

$('.here').live('click', function(eve) { 
    eve.preventDefault(); 

    var curpop = $(this).attr('rel') 
    ++curpop 
    $('.pop').html(curpop); 

    console.log(curpop) 
}) 

$(this).attr('rel')只是一个数字(蓝色,右,中图片)一旦你点击它的目的是增加数量的链接。

感谢您的帮助。

编辑:我已成立的jsfiddle同样的事情,但它似乎在那里工作,和所有的建议,仍然没有对我的项目工作,即使他们应该。

<h4 class='left'>Click 
<a class="here" href="#" rel="1">here</a></h4> 
<h4 class='right'> 
    <span class='pop'> 
     1 
    </span> 
</h4> 

这是HTML,现在有多种的这些,但是通过AJAX加载,我猜测,这将有事可做与类的多个实例没有标识将它们分开?

更多修改 正如我怀疑问题是与所述“之类的多个实例,没有识别符将它们分开”,所以我刚制成每一个这样的:

<span id="<?php echo $thereID; ?>_span" class='pop'> 
    1 
</span> 

然后

$('#' + thereID + '_span').html(curpop);

感谢所有帮助

+1

请向我们展示_all_代码,最好是演示。 – SLaks 2011-06-01 03:00:25

+0

这里不够回答你的问题哥们。 – stefgosselin 2011-06-01 03:05:40

+2

使用'.html()'命令,你是否在使用'.here'类重新创建某个东西,这会导致多次绑定'.live()'方法? – Orbling 2011-06-01 03:05:51

需要查看更多的代码,但通常我会看到JS初学者将事件添加到事件中。换句话说,每次链接被点击时,都会添加另一个事件处理程序。

无论如何,这里有一个单击处理程序增加计数器的例子:http://jsfiddle.net/GSuSk/

<a href="#" id="link">GO UP</a> 
<p>0</p> 
<script> 
    $('#link').click(function(){ 
      var v=$('p').text(); 
      $('p').text(+(v)+1); 
    }); 
</script> 

你为什么不尝试这种方法的?看here演示

不确定这个有限的代码量,但如果我没有弄错,我认为一个问题是变量是在现场创建,真的应该初始化外面,以便它只需要抓住它一次,然后从那里增加,而不必每次都获取新值。这是我重新安排的方式。 http://jsfiddle.net/robx/nDbb8/1/

+0

,当然你可以用你将要使用的任何东西替换选择器;) – robx 2011-06-01 04:11:37

<script type="text/javascript"> 

    $(function(){ 

      $('.here li a').click(function(){ 
       var current = parseInt($(this).attr('rel')); 
       var inc = current + 1; 
       console.log(inc); 
       $(this).attr('rel',inc); 
       }); 
    }); 
    </script> 

    <div > 
    <ul class='here'> 
    <li><a href='#' rel="1">one</a></li> 
    <li><a href='#' rel="10">two</a></li> 
    <li><a href='#' rel="37">three</a></li> 
    <li><a href='#' rel="1">four</a></li> 

    </ul> 

    </div> 

我不认为你需要在这里直播功能......关键是要使用parseInt函数,因为它是被评价为一个字符串投rel属性的当前值... - )