0

我正在使用以下代码在 ajax 成功功能后更新 select2 下拉菜单中的内容

  $.ajax(
{
url:'test.php',
type: 'POST',
data:'start='+start,
success:function(e)
{
var response=e; 
$('#field-video-keywords #optkeywords option:last').after(response);
$("#field-video-keywords").select2('close');                                                        
  $("#field-video-keywords").select2('open');   


},
error: function()
{
alert('Error');                     
}
});

内容正在更新,但在下拉菜单关闭然后打开时更新可见..请帮我解决问题

更新 感谢有价值的回复,
我能够附加回复数据。但是当我向下滚动列表时,它会回到选择列表的顶部。我该如何克服这个问题

    $('#keywords ul.select2-results').scroll(function()
{
var div = $(this);
var keywordscount=$('#keywordscount').text();
var newkeywordscount = Number(keywordscount) + Number(20);
if (div[0].scrollHeight - div.scrollTop() == div.height())
{
$.ajax(
{
url:'test.php',
type: 'POST',
data:'start='+newkeywordscount,
success:function(e)
{                           
var response=e; 
$("#field-video-keywords").select2('close');
$('#field-video-keywords #optkeywords option:last').after(response);
$("#field-video-keywords").select2('open'); 
$('#keywordscount').html(newkeywordscount);
},
error: function()
{
alert('Error');                     
}
});
}
});
4

1 回答 1

1

尝试将成功函数更改为:

success:function(e) {
    var response=e; 
    $("#field-video-keywords").select2('destroy');  
    $('#field-video-keywords option:last').after(response);                                                              
    $("#field-video-keywords").select2('');   
},

这应该使用您的新项目重新创建 select2 。

于 2013-10-09T08:33:12.150 回答