计数器应该适用于所有点击和功能应该是一个

时间:2013-01-27 12:43:40

标签: jquery

我有一个脚本计数器,但我想使用相同的计数器。 我对课堂和身份的所有变化持开放态度。 这是代码:

$(document).ready(function(){
    $('#target').click(function() {
        $('#output').text(function(i, val) { return val*1+1 });
    });

    $('#targetdown1').click(function() {
        $('#output').text(function(i, val) { return val*1-1 });
    });
    });

这是一个例子:

http://jsfiddle.net/cY9p7/7/

2 个答案:

答案 0 :(得分:1)

我不仅仅针对您的情况使用的解决方案之一是编写我需要更新的元素的目标id作为init元素的属性

在您的情况下,我在每个+/-符号上添加了一个数据属性,指示更新所需的目标元素

HTML代码

<div class="left" id="output1">1</div>
<div class="right">
   <div class="up-arrow" id="target" data-target="output1">+</div>
   <div class="down-arrow" id="targetdown1" data-target="output1">-</div>
</div>

Jquery代码

$(document).ready(function(){
    $('.up-arrow').click(function() {
        var target = $(this).attr("data-target");
        var val =  

        $('#' + target).text(function(i, val) {return val*1+1 });
    });

    $('.down-arrow').click(function() {
        var target = $(this).attr("data-target");
        $('#' + target).text(function(i, val) { 
            if (val == 0)
                return 0;
            return val*1-1 
        });
    });
});

Fiddle Example

答案 1 :(得分:1)

$(document).ready(function () {
    $('.up-arrow, .down-arrow').click(function () {
        var self = this;
        $(this).closest('.counterBox1').find('.left').text(function (i, val) {
            return self.id == 'target' ? (val * 1 + 1) : (val * 1 - 1);
        });
    });
});

FIDDLE