2011-09-20 54 views
2

我有<span class="gramatz">(8)</span>,我希望它添加+1或从-1取-1,当我点击我的love按钮时,不改变。jquery更新的唯一号码

$(function() { 
    $(".love").click(function() { 
     var id = $(this).attr("id"); 
     var dataString = 'id=' + id; 
     var parent = $(this); 
     $(this).fadeOut(300); 
     $.ajax({ 
      type: "POST", 
      url: "bookmark.php", 
      data: dataString, 
      cache: false, 
      success: function(html) { 
       parent.html(html); 
       parent.fadeIn(300); 
      } 
     }); 
     return false; 
    }); 
}); 

更新:我忘了我需要减少数值藏汉,详细情况请参考图片:http://img593.imageshack.us/img593/6128/ss20110921031605.png

所以如果在+用户点击,我需要增加的值,如果用户点击 - 我需要减少数量。

所以如果图标有+它有这个<div class="over_img">&nbsp;</div>,如果 - 它有这个<div class="on_img">&nbsp;</div> P.S.

回答

0

需要使用.live()这样的伎俩

1
$('.gramatz').text(function(i, val){ 
    return '(' + (+val.replace('(', '').replace(')', '') + 1) + ')'; 
}); 

加上从DIV的背景产生的减号图标要打破下来:

$('.gramatz').text(function(i, val) { 
    var num = val.replace('(', '').replace(')', ''); // "8" 
    num = +num; // Convert from string to number 
    num = num + 1; // add 1, will now be 9 
    return '(' + num + ')'; // "(9)" 
}); 

如果你想使用正则表达式,你可以使用这个:

$('.gramatz').text(function(i, val){ 
    return '(' + (+val.replace(/[^\d]/g, '') + 1) + ')'; 
}); 

这里是小提琴:http://jsfiddle.net/gaA2J/


为您的特定情况下,使用此:

$('.over_img, .on_img').click(function(){ 
    var amount = $(this).hasClass('over_img') ? 1 : -1 ; 
    $('.gramatz').text(function(i, val){ 
     return '(' + (+val.replace(/[^\d]/g, '') + amount) + ')'; 
    }); 
}); 

而这里的小提琴:http://jsfiddle.net/gaA2J/1/

+0

我更新的问题,您可以请检查?并感谢代码为我以前的问题工作完美,但请再看看:) – Treat

+0

@Treat - 我更新了我的答案... –

+0

Thankyou!我检查小提琴,它确实能够像我需要的一样工作,但我认为由于系统在我的网站中编码的方式,它不起作用。我创建了特殊访问链接,因此可以访问我的网站并检查出现了什么问题,这里是:http://www.filmas-online.lv/quick.php?stack=1只需点击任何+和在负号变化之后,观看左侧的顶部以更改号码。 – Treat

0

只有递增代码所示:

$(function() { 
    $(".love").click(function() { 
     $('.gramatz').text($('.gramatz').text().replace(/(\d+)/, function(str, val) { 
      return +val + 1; 
     })) 
    }); 
}); 

Example


编辑

New Example

$(function() { 
    $(".love").click(function() { 
     var $class = $(this).attr('class'), 
      inc = $class.indexOf('minus') === -1 ? 1: -1; 

     $('.gramatz').text($('.gramatz').text().replace(/(-?\d+)/, function(str, val) { 
      return +val + inc ; 
     })) 
    }); 
}); 
+0

我更新了问题,可以请检查吗?并且,感谢代码对于我以前的问题来说非常完美,但请再看看:) – Treat

+0

谢谢!我查了一下小提琴和你的例子,但是由于某种原因,我的网站无法正常工作。我创建了特殊的访问链接,因此可以访问我的网站并检查有什么不对,这里是:http://filmas-online.lv/quick.php?stack=1只需点击任何+,然后改变负数并观察左侧的顶部数字变化。 – Treat