好的,我一直在尝试构建一个基本的组合框小部件(一个隐藏的选择,一个输入字段和一个选项的div),它们会对某些事件做出反应,比如keypressed和focusin。现在我偶然发现了一个问题,我无法使用退格键删除输入中的字符。我可以用删除键删除,我可以用左右键左右移动,但退格不起作用。
以下代码显示了我的jquery ui小部件的 代码: 感谢您对该主题的任何意见,谢谢_create: function() {
var self = this;
this.currentComboContainer = $("<div class='currentComboBoxContainer' ></div>");
this.select = this.element.hide();
this.select.wrap(this.currentComboContainer);
var selected = this.select.children(":selected"),
value = selected.val() ? selected.text() : "";
this.input = $("<input />");
this.optionsDiv = $("<div></div>");
this.input.insertAfter(this.select)
.addClass("currentComboBox");
this.optionsDiv.insertAfter(this.input)
.addClass("currentComboBox");
this.select.children().clone().appendTo(this.optionsDiv);
this._on(".currentComboBoxOptionElement", {
click: this._optionClick
});
//this.optionsDiv.delegate(".currentComboBox", "click", this._optionClick);
this.input.val(value)
.focusin(function() {
self.optionsDiv.show();
})
.focusout(function() {
self.optionsDiv.delay(200).hide(0);
})
.dblclick(function () {
CCNet.UI.wait(true);
var toId = self.input.val();
self.input.blur();
if(toId)
$.post(self.options.navigationAction + "?id=" + toId);
})
.keyup(function (keyevent) {
/*if (keyevent.which === 13) {
CCNet.UI.wait(true);
var toId = self.input.val();
self.input.blur();
if(toId)
$.post(self.options.navigationAction + "?id=" + toId);
}*/
});
var inputOffset = this.input.position();
inputOffset.top += this.input.height() + 3;
this.optionsDiv
.css(inputOffset)
.hide();
}