单击标签未聚焦自定义元素(Web组件)

都六

我正在<select>使用本机DOM(无Polymer)编写自定义元素

我正在尝试将我的元素与一个<label>元素一起使用,并在单击标签时正确触发对我的元素的点击事件,即:

<label>
  My Select:
  <my-select placeholder="Please select one">...</my-select>
</label>

// or

<label for='mySelect1'>My Select:</label>
<my-select id='mySelect1' placeholder="Please select one">...</my-select>

但是,即使我添加了一个tabindex以使其具有焦点,这种行为也无法立即使用

这是代码的精简版和一个带有一些基本调试的jsfiddle:https ://jsfiddle.net/h56692ee/2/

var MySelectOptionProto = Object.create(HTMLElement.prototype);
document.registerElement('my-select-option', { prototype: MySelectOptionProto});

var MySelectProto = Object.create(HTMLElement.prototype);
MySelectProto.createdCallback = function() {
    if (!this.getAttribute('tabindex')) {
        this.setAttribute('tabindex', 0);
    }
    this.placeholder = document.createElement('span');
    this.placeholder.className = 'my-select-placeholder';
    this.appendChild(this.placeholder);

    var selected = this.querySelector('my-select-option[selected]');
    this.placeholder.textContent = selected ? 
        selected.textContent : (this.getAttribute('placeholder') || '');
};
document.registerElement('my-select', { prototype: MySelectProto});
超锐利

只能将短语内容元素作为目标<label>

因此,如果要使用非标准(自主定制)元素,则必须自己管理焦点动作

相反,您可以选择定义将扩展该元素Customized内置<select>元素,如以下示例所示:https : //jsfiddle.net/h56692ee/4/

 var MySelectProto = Object.create( HTMLSelectElement.prototype )
 //...
 document.registerElement('my-select', { prototype: MySelectProto, extends: "select" } )

您需要is为HTML使用属性表示法:

<label>
   My Select:
   <select is="my-select" placeholder="Please select one">
       <option>...</option>
   </select>
</label> 

在以下2个帖子中更新更多解释:在这里那里

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

自定义HTML元素属性未显示-Web组件

来自分类Dev

元素 UI - 自定义标签表单选择组件

来自分类Dev

自定义元素与网络组件自定义元素

来自分类Dev

标签未使用自定义字体

来自分类Dev

自定义QML元素-项目或组件

来自分类Dev

自定义元素中的脚本标签

来自分类Dev

自定义元素未选择属性

来自分类Dev

Lucee-自定义标签的无效组件定义

来自分类Dev

Lucee-自定义标签的无效组件定义

来自分类Dev

用于约束验证的自定义Web组件表单元素

来自分类Dev

反应使用自定义钩子检测组件外部的单击

来自分类Dev

如何从元素内部设置自定义元素标签的样式?

来自分类Dev

如何在ZK中自定义组件标签

来自分类Dev

为什么自定义控件的组件未启动?

来自分类Dev

Blazor FieldChanged事件未针对自定义组件触发

来自分类Dev

自定义组件中的Angular preSelected选项未显示

来自分类Dev

淘汰赛自定义组件未更新

来自分类Dev

您可以定义多少个Web组件/自定义元素是否有限制?

来自分类Dev

Django自定义模板标签未循环呈现

来自分类Dev

角度自定义标签未呈现和执行功能

来自分类Dev

选择时自定义标签栏图标未“填充”

来自分类Dev

如何访问Knockout组件中的自定义元素?

来自分类Dev

动态在自定义元素中加载组件

来自分类Dev

自定义角度库组件显示错误“未知元素”

来自分类Dev

React JSX中的自定义HTML元素标签

来自分类Dev

自定义单选按钮标签中的居中元素

来自分类Dev

自定义元素是否需要关闭标签?

来自分类Dev

使用Liquid自定义标签输出多个“ span”元素

来自分类Dev

自定义元素是否需要关闭标签?

Related 相关文章

热门标签

归档