getAdjacentOption(value, direction)
을 호출 할 때 value
인수가 무엇인지에 대한 API 설명서가 명확하지 않습니다. 당신이 selectize.js의 소스에 getAdjacentOption
를 조회하는 경우
당신이
getAdjacentOption
가 선택 또는 요소를 받아들이는 jQuery를
.index()
방법을 사용합니다 것을 우리에게 말하고있다
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) : $();
},
찾을 수 있습니다.
따라서 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>
훌륭한 대답은 'refreshOptions (false)'가 필수 항목 인 것처럼 보입니다 (문제없이 작동하지 않음). 이유는 무엇입니까? – dietervdf
오, 나는 'crnt'이 무엇을 의미하는지 알고 싶습니다. – dietervdf
'crnt'는 "current"의 약자이지만'curr' 또는'cur' 만이 더 나은 선택이 될 수 있습니다 :). 'refreshOptions (false)'는 실제로 몇몇 유용한 API 옵션이 유용한 값을 반환하는 데 필요합니다. 최소한 HTML 요소로 추가 할 때. 일부 재 초기화가 발생하고있는 것 같습니다. – DavidDomain