我一直在使用 selectize.js,但我对 getAdjacentValue()
的使用有点困惑。
在 API 中发现:
getAdjacentOption(value, direction)` Retrieves the jQuery element for the previous or next option, relative to the currently highlighted option. The "direction" argument should be 1 for "next" or -1 for "previous".
最小工作示例,jsFiddle .
<select id='car' name='car'>
<option value='1'>Mercedes</option>
<option value='2' selected>BMW</option>
<option value='3'>Volvo</option>
</select>
和.js
$('select').selectize();
var obj = $('select')[0].selectize;
但是如何获取当前所选项目的下一个和上一个值? 我不知道如何实现 API 帮助。
最佳答案
API 文档不太清楚调用 getAdjacentOption(value, Direction)
时 value
参数的含义。
如果你在 selectize.js 的源代码中查找 getAdjacentOption
你会发现
getAdjacentOption: function($option, direction) {
var $options = this.$dropdown.find('[data-selectable]');
var index = $options.index($option) + direction;
return index >= 0 && index < $options.length ? $options.eq(index) : $();
},
这告诉我们 getAdjacentOption
使用了 jQuery .index()
方法,该方法接受选择器或元素。
因此调用 obj.getAdjacentOption(2,1)
无法给出预期结果,因为您将 int 作为第一个参数传递给函数。
但是像 obj.getAdjacentOption("2",1)
这样调用它也无济于事,即使 "2"
可能是您当前选择的值选项。
在当前选定的元素中进行长话短说。
这是一个例子
$(document).ready(function() {
var $select = $('select').selectize();
var obj = $select[0].selectize;
obj.refreshOptions(false);
var crnt = obj.getOption(obj.getValue());
console.log("Prev option is:",
obj.getAdjacentOption(crnt,-1).text(),
"with a value of",
obj.getAdjacentOption(crnt,-1).data("value"));
console.log("Next option is:",
obj.getAdjacentOption(crnt,1).text(),
"with a value of",
obj.getAdjacentOption(crnt,1).data("value"));
});
<link href="https://cdnjs.cloudflare.com/ajax/libs/selectize.js/0.12.2/css/selectize.default.css" rel="stylesheet"/>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/selectize.js/0.12.2/js/standalone/selectize.js"></script>
<select id='car' name='car'>
<option value='1'>Mercedes</option>
<option value='2' selected>BMW</option>
<option value='3'>Volvo</option>
</select>
关于javascript - Selectize.js getAdjacentOption() 如何工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38422991/