2013-03-14 58 views
0

我正在使用以下代碼填充選擇框的選項。填充jquery選擇框並更新下拉列表

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");會這樣做,但由於某種原因它不會。我正在尋找正確的功能來運行。

+0

什麼是「jquery顯示系統」,什麼是「liszt:updated」? – mkoryak 2013-03-14 20:22:15

+0

http://harvesthq.github.com/chosen/ – 2013-03-14 20:30:20

+1

啊,將來會提到你使用的是選擇的或者任何插件。否則你的問題幾乎無法回答 – mkoryak 2013-03-15 02:24:03

回答

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'))的東西,你正在使用的自定義事件。

相關問題