Добавьте TabIndex к кнопкам, созданным с помощью JavaScript - PullRequest
1 голос
/ 17 октября 2011

У меня есть кнопки, созданные на JavaScript, и я хочу добавить TabIndex для доступа к клавиатуре. Я добавил значения ключа доступа в этот код и в этот код:

button41 = new ObjButton('button41',null,679,0,53,32,1,54,'div')
button41.setImages('images/0807_help.jpg','images/0807_help_over.jpg','images/0807_help_over.jpg')
button41.onUp = button41onUp
button41.hasOnUp = true
button41.capture=4
button41.setAccessKey(2)
button41.setTabIndex(2)
button41.build()

Но когда я попытался добавить TabIndex, номер TabIndex не работал. Какие-либо предложения? Вот скрипт:

function ObjButtonBuild() {
    this.css = buildCSS(this.name,this.x,this.y,this.w,this.h,this.v,this.z)
    this.div = '<' + this.divTag + ' id="'+this.name+'" style="text-indent:0;"></' + this.divTag + '>\n'
    this.divInt = '<a name="'+this.name+'anc" href="javascript:void(null)"'
    if(this.accessKeyValue && this.accessKeyValue!=null) {
        this.divInt+=' accessKey='+this.accessKeyValue+' ';
    }
    if( this.altName )
        this.divInt += ' title="'+this.altName+'"'
    else if( this.altName != null )
        this.divInt += ' title=""'
        this.divInt += '><img name="'+this.name+'Img" src="'+this.imgOffSrc
    if( this.altName )
        this.divInt += '" alt="'+this.altName
    else if( this.altName != null )
        this.divInt += '" alt="'
        this.divInt += '" width='+this.w+' height='+this.h+' border=0'
    if( !is.ns4 ) 
        this.divInt += ' style="cursor:pointer"'
        this.divInt += '></a>'
}

1 Ответ

3 голосов
/ 17 октября 2011

Вы не должны строить свои элементы таким образом. Используйте document.createElement() вместо:

var el = document.createElement("a");
if (el){
    el.name = "foo";
    el.href = "somepage.htm";
    el.tabIndex = 3;
}

Вы также можете сделать это следующим образом:

var el = document.createElement("a");
if (el){
    el.setAttribute("class", "someclass");
    el.setAttribute("name", "foo");  
    el.setAttribute("href", "somepage.htm");
    el.setAttribute("tabIndex", "3");
}

Вы также можете использовать jQuery для этого:

var el = $("<a>", { name : "foo", href : "somepage.htm", tabIndex : "6" });
...