0

データベースからデータを読み取るギャラリーがあります。

その下には、すべてのデータまたはレコードの数を示すいくつかの円があります。

円が黄色に変わるたびに、アクティブな投稿が何であるかを示します。

私はこの方法でこのメカニズムを生成しました:

function drawCircles(activeIndex) {
    var off_html = '<img class="post_circle" src="../themes/dark/images/off.png"/>';
    var on_html = '<img class="post_circle" src="../themes/dark/images/on.png"  />';
    $('#circles').empty();

    for (var i = 1; i <= pcount; i++) {

        if (i != activeIndex) {
            $(off_html).appendTo($('#circles'));
        }
        else {
            $(on_html).appendTo($('#circles'));
        }

    }


}

PCount = すべての投稿の数...

#circles div は円が含まれるバーです。**

私たちが電話するとき

drawCircles(2)

2 番目の円が黄色に変わります。そのためのクリックイベントを作成したいのですが、どの円がクリックされたかを知りたいですか? .live関数を試しましたが、どの円がクリックされたかわかりません...

4

1 に答える 1

1

試す:

$('#circles img.post_circle').on('click', function(e) {
  // e.target is the circle clicked
});

編集:ここに完全な答えがあります:

$(function(){
  var off_html = '<img class="post_circle" src="http://placehold.it/50x50/ff0000"/>';
  var on_html = '<img class="post_circle" src="http://placehold.it/50x50/ffff00"/>';

  var pcount = 5;

  $('#circles').empty();    
  drawCircles(3);

  function drawCircles(activeIndex) {
    for (var i = 1; i <= pcount; i++) {
      if (i != activeIndex) {
        $(off_html).data('index', i).appendTo($('#circles'));
      } else {
        $(on_html).data('index', i).appendTo($('#circles'));
      }
    }
  }

  $('#circles img.post_circle').on('click', function(e) {
    alert($(this).data('index'));
  });
});

ここにフィドルがあります

于 2012-10-06T14:06:43.857 に答える