0

リスト項目を作成するために使用している値の配列を取得し、それを順序付きリストに追加しました。

私がしたいのは、リスト内の項目の順序に基づいてこれらの値の合計を渡すクリック関数を作成することです (つまり、リスト内の 3 番目の項目をクリックすると、前のすべての値が合計され、その合計が変数。

4

2 に答える 2

0
var jList = $("#bargraph ul").attr('class', 'bars');

属性「クラス」を「バー」に設定しようとしています。クラスを追加したい場合は、addClassを使用する必要があります。クラスを使用して選択するには、これを行うことができます:

var jList = $(".bars");

また、セレクターは組み合わせることができます。

于 2012-06-29T12:49:55.160 に答える
0

したがって、値を合計して、配列をループするだけです。これを行うには、objValue ではなく、intIndex だけを知る必要があります。

var jList = $("#bargraph ul").addClass('bars');

// for each item in your array, create an LI
$.each(datas,function(intIndex, objValue){
    var intSum = 0, i = 0;

    for (i; i < intIndex; i++) {
        // just to make sure you don't try and access an array value out of bounds
        if (i >= datas.length) {
            break;
        }

        intSum += datas[intSum];
    }

    jList.append($("<li>"+"</li>").addClass('bar'+intIndex).css('height', objValue).attr('data-sum', intSum));
});

// for each LI, add an event listener
$("#bargraph li").on('click', function(e) {
    // here's your value
    currentSlide = $(this).attr('data-sum');
});

振り返ってみると、それを行うためのより良い方法があります。合計を計算するために、すべてのロジックをイベントリスナーに移動したいと思います。その場合、jquery セレクターを使用してすべての LI の配列を取得し、現在の LI に到達するまでそれらをループして、それらの高さ属性を合計します。しかし、今のところ、これでうまくいくはずです。

于 2012-06-29T12:52:42.497 に答える