0
4

1 回答 1

1

我将 ID 更改为唯一的。我还更改了 alt 属性以区分最后一个元素。

http://jsfiddle.net/H2yeR/

I <i class="alt1" id="text0" data-text='["like","love"]'>like</i> <i class="alt1" id="text1" data-text='["her","you"]'>her</i>, but I don't know <i class="alt2" id="text2" data-text='["him","you"]'>him</i>.

$('.alt1').click(function () {
    $('.alt1').each(function(i,e){
        swapText($(e));
    });
});
$('.alt2').click(function () {
    swapText($(this));
});

function swapText(alt) {
    var texts = alt.data('text');
    var current_text = alt.text();
    if(current_text==texts[0]) {
        alt.text(texts[1]);
    } else {
        alt.text(texts[0]);
    }
}

编辑

我写了更多的“通用”脚本。我为每个元素使用 2 个类名:alt 和 text 其中是组号。

http://jsfiddle.net/mattydsw/H2yeR/2/

$('.alt').click(function () {
    var className = $(this).attr("class");
    className = className.split(' ');
    className = className[1];
    $('.alt.'+className).each(function(i,e){
        swapText($(e));
    });
});

function swapText(alt) {
    var texts = alt.data('text');
    var currentText = alt.text();
    var currentIdx = alt.data('i');
    if(currentIdx==undefined) {
        currentIdx = 0;
    }
    currentIdx = (currentIdx+1) % texts.length;
    alt.data('i',currentIdx);
    alt.text(texts[currentIdx]);
}
于 2013-06-26T21:41:58.713 回答