我想创建一个变量以使我的代码更通用。这是我正在处理的代码:
eventHandler: function(event) {
if (event.keyCode == KEY_DOWN) {
if (this.hasNextSibling(document.activeElement.parentNode)) {
this.setFocus(document.activeElement.parentNode.nextSibling.firstChild);
} else {
this.debug("out");
}
}
},
setFocus: function(item)
{
document.activeElement.tabIndex = "-1";
item.focus();
document.activeElement.tabIndex = "0";
},
...
我有“document.activeElement.parentNode.nextSibling.firstChild”的部分是问题所在。为了能够重用代码,我首先要做的是设置一个像这样的变量:
var test = document.activeElement.parentNode.nextSibling.firstChild; /*CHANGE HERE*/
eventHandler: function(event) {
if (event.keyCode == KEY_DOWN) {
if (this.hasNextSibling(document.activeElement.parentNode)) {
this.setFocus(test); /*CHANGE HERE*/
} else {
this.debug("out");
}
}
},
setFocus: function(item)
{
document.activeElement.tabIndex = "-1";
item.focus();
document.activeElement.tabIndex = "0";
},
...
代码无法编译。我尝试了许多不同的方法,例如方法引用,但似乎没有任何效果。有人有想法吗?
多谢
编辑:这是我真正想要的:
var x = parentNode.nextSibling.firstChild;
eventHandler: function(event) {
if (event.keyCode == KEY_DOWN) {
if (this.hasNextSibling(parent)) {
this.setFocus(document.activeElement.x);
} else {
this.debug("out");
}
}
},
setFocus: function(item)
{
document.activeElement.tabIndex = "-1";
item.focus();
document.activeElement.tabIndex = "0";
},
语义不正确。有没有办法我可以做到这一点?谢谢