2015-10-14 55 views
0
沒有工作的div
this._createPickerElement = function() { 

     this.elem = document.createElement('div'); 
     this.elem.setAttribute("id", "myDiv"); 
     this.elem.classList.add('vanilla-color-picker'); 
     var _this = this; 

     if (className) { 
      this.elem.classList.add(className); 
     } 

     var currentlyChosenColorIndex = colors.indexOf(this.targetElem.dataset.vanillaPickerColor); 

     for (var i = 0; i < colors.length; i++) { 
      this.elem.innerHTML += singleColorTpl(colors[i], i + 1, 
        i == currentlyChosenColorIndex, noColor); 
     } 
     this.targetElem.parentNode.appendChild(this.elem); 
     this.elem.setAttribute('tabindex', 1); 

     var toFocus = currentlyChosenColorIndex > -1 ? currentlyChosenColorIndex : 0; 

     this.elem.children[toFocus].focus(); 
     this.elem.children[toFocus].addEventListener('blur', this_._onFocusLost); 

重點IE11 不工作當我點擊this.elem.children [toFocus]不火單擊事件,只是模糊火
集中在IE

this.elem.children[toFocus].focus() 

現在工作。 ...........
任何想法??

回答

1

試圖修改這樣的:

/** 
* removed by edit 
* this.elem.children[toFocus].select();//<-- add this line only for HTMLInuputElement 
**/ 
this.elem.children[toFocus].focus(); 

編輯

快速
你必須設置哪些元素可以得到一個FocusEvent,通過添加的TabIndex元素上。

if(! this.elem.children[toFocus].tabindex) 
    this.elem.children[toFocus].tabindex = -1; // -1 to let the browser determining the order 

7.4.1序貫焦點導航和tabindex屬性屬性

tabindex屬性內容屬性允許作者控制的元件是否被認爲是可聚焦的,它是否是應該使用順序聚焦導航可以達到,以及爲了順序聚焦導航的目的,元素的相對順序是什麼。名稱「選項卡索引」來自「選項卡」鍵的常用用途,以導航可聚焦元素。術語「標籤」是指通過使用順序聚焦導航可達到的可聚焦元素向前移動。

tabindex屬性(如果指定)必須具有一個有效整數值。

每個元素都可以有一個tabindex焦點標誌集,如下所定義。這個標誌是決定一個元素是否可聚焦的一個因素,如下一節所述。

你可以在這裏閱讀更多:

w3.org focus

+0

遺漏的類型錯誤:this.elem.children [toFocus]。選擇不是一個功能 –

+0

對不起,我用它來做到這一點,但我只是驗證這僅用於HTMLInputElement *。但我更新了我的答案以反映這一點。 – Anonymous0day

+0

謝謝!!元素是div,所以我改變了div到按鈕 –