Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/430.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript jquerymultiselect不';t滚动至所选选项_Javascript_Jquery_Scroll_Multi Select - Fatal编程技术网

Javascript jquerymultiselect不';t滚动至所选选项

Javascript jquerymultiselect不';t滚动至所选选项,javascript,jquery,scroll,multi-select,Javascript,Jquery,Scroll,Multi Select,我在这里使用JQuery Multiselect插件: 当选项列表很长时,会出现一个滚动条,但不会自动滚动到所选选项。这意味着,在选择第50个选项后,如果我想选择第51个选项,我必须再次向下搜索 你知道如何解决这个问题吗?我试着使用Scrolltop,但没有成功 代码非常简单 $(function(){ $("select").multiselect({multiple: false, selectedList: 1}); }); 下面是一个解决此问题的方法: 提前非常感谢。第一次尝试时

我在这里使用JQuery Multiselect插件:

当选项列表很长时,会出现一个滚动条,但不会自动滚动到所选选项。这意味着,在选择第50个选项后,如果我想选择第51个选项,我必须再次向下搜索

你知道如何解决这个问题吗?我试着使用Scrolltop,但没有成功

代码非常简单

$(function(){
   $("select").multiselect({multiple: false, selectedList: 1});
});
下面是一个解决此问题的方法:


提前非常感谢。

第一次尝试时,您可以看看这个,它工作得很好


你只需要将它与你的需要相匹配,在偏移中加一些额外的像素,它会在中间选择滚动的选项,而不是最上面的

你是对的,它确实有效。我的问题是因为我在同一页中有多个multiselect,所以offset()。对于除第一个multiselect之外的任何multiselect,top始终为零(我没有注意到第一个multiselect不是零…)。解决方法如下:

$('.ui-multiselect-checkboxes').scrollTop($($('.ui-multiselect-checkboxes .ui-state-active')[index]).offset().top);
其中index是页面中多个选择项的索引


非常感谢

我建议,要编辑“jQuery MultiSelect UI小部件1.12”JS文件, 打开菜单选项时,选择“自动选择”

在文件中搜索:(始终选择第一项)
this.labels.eq(0).trigger('mouseover').trigger('mouseenter').find('input').trigger('focus')

并将其更改为:(动态选择):

var idxSelected=0;
如果(o.multiple==true){
//首先查找并检查。
idxSelected=$container.find('input[type=checkbox]:checked:first')。parent().parent().index();
}
否则{ //找到检查过的那个 idxSelected=$container.find('.ui状态活动:first').parent().index(); } idxSelected=idxSelected<0?0:idxSelected; this.labels.eq(idxSelected).trigger('mouseover').trigger('mouseenter').find('input').trigger('focus')


在FF+CHROME+IE上测试(在多个+单个列表上)

你是对的,它确实有效。我的问题是因为我在同一页中有多个multiselect,所以当offset()时,除了第一个multiselect外,任何multiselect的top始终为零。
$('.ui-multiselect-checkboxes').scrollTop($($('.ui-multiselect-checkboxes .ui-state-active')[index]).offset().top);