焦点不适用于IE中的div

时间:2015-10-14 08:56:27

标签: javascript

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]不点击事件时,只会模糊火焰

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

现在正在工作............
任何想法??

1 个答案:

答案 0 :(得分:1)

尝试修改:

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

编辑

<强>快速
您必须通过在元素上添加tabindex来设置哪些元素可以接收FocusEvent。

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内容属性允许作者控制元素是否应该是可聚焦的,是否应该使用顺序焦点导航可以到达,以及为了顺序焦点导航的目的,元素的相对顺序是什么。名称“tab index”来自“tab”键的常用用途,用于浏览可聚焦元素。术语“标签”指的是向前移动可通过顺序焦点导航到达的可聚焦元素。

tabindex属性(如果已指定)必须具有有效整数值。

每个元素都可以设置tabindex焦点标志,如下所述。该标志是有助于确定元素是否可聚焦的因素,如下一节所述。

您可以在这里阅读更多内容:

w3.org focus