我编写了这个自定义指令来拦截关键事件。使用按下的键,我检查下拉列表中是否有一个带有相同的第一个字母字符的项目。到目前为止一切都很好。
接下来我想把重点放在这个项目上,但它似乎不起作用。
以下是代码:http://plnkr.co/edit/dEqcMyLKLfsEccB6FS8y?p=preview
android {
compileSdkVersion 22
buildToolsVersion '22.0.1'
defaultConfig {
applicationId "com.example.name"
minSdkVersion 14
targetSdkVersion 22
versionCode 1
versionName "1.0"
}
.......
dependencies {
compile 'com.android.support:appcompat-v7:22.2.1'
compile 'com.google.android.gms:play-services:6.5.87'
}
该指令绑定到 myApp.directive('keypressEvents',
function ($document, $rootScope) {
return {
restrict: 'A',
link: function (scope, element, attr) {
console.log('linked');
$document.bind('keypress', function (e) {
var letter = String.fromCharCode(e.which);
var target = e.target;
var charat = element[0].textContent.charAt(13);
if(element[0].tabIndex === undefined)
alert('undefined1');
if(element.tabIndex === undefined)
alert('undefined2');
if(element.focus === undefined)
alert('undefined3');
if(element[0].focus === undefined)
alert('undefined4');
if(charat === letter){
alert(letter);
element[0].focus(); ////<<---- this dose not works
}
});
}
};
});
元素:
li
答案 0 :(得分:0)
if(charat === letter){
element.addClass("active");
}
else{
element.removeClass("active");
}
只是这个代码,以防第一个字母在菜单中匹配一个 将css类设置为活动状态,在其他情况下删除活动状态。