0

次のコードを使用して、選択ボックスのオプションを設定しています。

function generateTerms(x){
    var optList = new Array(1,2,3,4,5,6,7,8,9,10,11,12,0);
    $.each(optList, function(i, value) {
        if(value==0){var text='Continuous';}
        else if(value==1){var text=x;}
        else{var text=x+'s';}
        $('#term').append($('<option>', { 'value': value, 'text' : text }));        
    });
    $("#term").trigger("liszt:updated");
}

これの使用はgenerateTerms('Year');

私の問題は、コードを見ると選択ボックスが正しく更新されますが、jquery 表示システムは更新されないことです。できると思っ.trigger("liszt:updated");ていたのに、なぜかできない。実行する正しい関数を探しています。

4

1 に答える 1

0

liszt:updatedはカスタム イベントであり、それへのトリガーとバインドは非常に簡単です。ここにデモがあります:

http://jsfiddle.net/8BhAV/

var $term = $('#term'),
    $log = $('#log'),
    $button = $('button');

$term.on('liszt:updated', function (event) {
    $log.html($log.html() + 'Updated at ' + (+new Date()) + '<br>');
});

$button.on('click', function (event) {
    $term.append($('<option>', {
        value: (+new Date()),
        text: (+new Date())
    }));
    $term.trigger('liszt:updated');
});

私の推測では、$('#term').on('liszt:updated')使用しているカスタム イベントにバインドされているもの ( ) はありません。

于 2013-03-14T20:29:10.067 に答える