0

重複の可能性:
Jqueryでチェックボックスがオンになっているときにリッスンする方法

以下に示すように、JQueryを使用して動的にいくつかのチェックボックスを作成しています。

     function createCheckbox(len){

        for(var i = 0; i < len; i++){
            $('#checkboxes').append('<input type="checkbox" ' + 'id=' + i + '></input>');
        }
        return;
      }

HTMLには、次のものがあります。

<div id="checkboxes"></div>

私の目標は、チェックボックスがオンになっているときはいつでも、そのID(または値)をこの関数に送信できるようにすることです。

function hideColumn(columnIndex){
        $('#chart2 td:nth-child(' + (columnIndex+1) + ')').hide(); 
        return;
      }

これにより、テーブル内の特定の列を非表示にするロジックを処理できるようになります。誰かがそれを手伝ってくれませんか?ありがとう

4

4 に答える 4

1

createCheckbox関数を変更するだけで、これを試すことができます。

function createCheckbox(len){
    for(var i = 0; i < len; i++){
        $('<input type="checkbox" ' + 'id=' + i + '></input>').on('change', function(e) {
            if (this.checked) {
                hideColumn(this.id);
            }
        }).appendTo($('#checkboxes'));
    }
    return;
}
于 2012-07-18T15:01:32.000 に答える
1

動的に作成しているcheckboxため、jQueryを使用してデリゲートイベントを使用する必要があります.on()

$('#checkboxes').on('change', ':checkbox', function() {
  if( this.checked ) {
    hideColumn( this.id ); // to send value use:   this.value
                           // but in your append code 
                           // there is no value attribute
  }
});

ノート

.on()forデリゲートイベントの構文は次のようになります。

$( StaticElement ).on( eventName, target, handlerFunction );

ここで、StaticElementは動的ではない要素を指します。

于 2012-07-18T14:52:43.990 に答える
0

jQuery APIでは非常に単純なようです!

function createCheckbox(len) {    
  for (var i = 0; i < len; i++) {        
    $('<input type="checkbox" ' + 'id=' + i + '></input>').on('change', function(e) {
      if (this.checked) {
        hideColumn(this.id);
      }
    }).appendTo($('#checkboxes'));
  }
  return; 
} 
于 2012-07-18T15:09:09.530 に答える
0

このようなことを試しましたか?:

$("#checkboxes :checkbox").on('change', function(e) {
    if (this.checked) {
        hideColumn(this.id);
    }
});
于 2012-07-18T14:56:25.477 に答える