有人可以帮助我吗? (对不起我的英文,我是法国人) 我有一个组合框,我想在读取我的组合框中填充的数据数组之前插入一个项目“add-item”。总结一下:
1-添加到我的组合框“add-item”(在读取数组之前添加),
2-从我的阵列添加我的组合框数据(这部分没问题)。
这是我的代码:
<h3>What would you like for breakfast?</h3>
<div id="bAutoComplete">
<input id="bInput" type="text"> <span id="toggleB"></span>
<div id="bContainer"></div>
<input id="myHidden" type="hidden">
</div>
<script type="text/javascript" src="assets/datafab.js"></script>
YAHOO.namespace("example.container");
YAHOO.example.Combobox = function() {
// Instantiate DataSources
var bDS = new YAHOO.util.LocalDataSource(YAHOO.example.Data.menu.breakfasts);
// Optional to define fields for single-dimensional array
bDS.responseSchema = {fields : ["name"]};
// Instantiate AutoCompletes
var oConfigs = {
prehighlightClassName: "yui-ac-prehighlight",
useShadow: true,
queryDelay: 0,
minQueryLength: 0,
animVert: .01
}
var bAC = new YAHOO.widget.AutoComplete("bInput", "bContainer", bDS, oConfigs);
bAC.resultTypeList = false;
// Breakfast combobox
var bToggler = YAHOO.util.Dom.get("toggleB");
var oPushButtonB = new YAHOO.widget.Button({container:bToggler});
var toggleB = function(e) {
//YAHOO.util.Event.stopEvent(e);
if(!YAHOO.util.Dom.hasClass(bToggler, "open")) {
YAHOO.util.Dom.addClass(bToggler, "open")
}
// Is open
if(bAC.isContainerOpen()) {
bAC.collapseContainer();
}
// Is closed
else {
bAC.getInputEl().focus(); // Needed to keep widget active
setTimeout(function() { // For IE
bAC.sendQuery("");
},0);
}
}
oPushButtonB.on("click", toggleB);
bAC.containerCollapseEvent.subscribe(function(){YAHOO.util.Dom.removeClass(bToggler, "open")
});
我的数组数据源来自datafab.js(我们有:甜甜圈,酸奶......),所以我需要在此列表前添加“add-item”项。项“add-item”不应该在数组datafab.js中 是否可以使用yui函数?
答案 0 :(得分:0)
我假设YAHOO.example.Data.menu.breakfasts
是对数组的引用。
尝试更改行:
var bDS = new YAHOO.util.LocalDataSource(YAHOO.example.Data.menu.breakfasts);
为:
var bDS = new YAHOO.util.LocalDataSource(['add-item'].concat(YAHOO.example.Data.menu.breakfasts));
如果您希望add-item
出现在组合框的末尾,请使用:
var bDS = new YAHOO.util.LocalDataSource(YAHOO.example.Data.menu.breakfasts.concat('add-item'));
有关详细信息,请参阅JavaScript concat
函数。