我使用以下代码在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');
}
});
}
});
答案 0 :(得分:1)
尝试将成功功能更改为:
success:function(e) {
var response=e;
$("#field-video-keywords").select2('destroy');
$('#field-video-keywords option:last').after(response);
$("#field-video-keywords").select2('');
},
这应该用你的新项目重新创建select2。