未将数据属性添加到创建的元素中
data attributes not being added to created element
我创建了一个新的div元素,我想添加一些数据属性,所以我设置了以下代码:
vjs.LikeButton = vjs.Button.extend({
/** @constructor */
init: function(player, options){
vjs.Button.call(this, player, options);
}
});
vjs.LikeButton.prototype.createEl = function(){
return vjs.Button.prototype.createEl.call(this, 'div', {
'id': 'video-fb-like',
'className': 'fb-like',
'innerHTML': '',
'data-send': "false",
'data-layout': "box_count",
'data-width': "55",
'data-show-faces': "false",
'data-colorscheme': "dark",
'data-href': this.player().options().shareUrl
});
};
然而,问题是元素获得了新的类和id,但没有添加数据属性。有人能告诉我们为什么会这样吗?
这是因为video.js设置属性的方式:
el[propName] = properties[propName];
data
属性在支持它们的浏览器中不能以这种方式设置。所以你必须自己做,例如使用
var button = vjs.Button.prototype.createEl.call(...
button.setAttribute('data-send', 'false');
IE浏览器中有这个问题吗?,由于数据属性仅在html5中受支持,您可能需要检查浏览器的兼容性。
相关文章:
- 有没有一种方法可以让内联事件处理程序在元素创建后立即执行
- 根据对多个数组唯一的元素创建一个新数组
- 使用Jquery从所有元素创建一个字符串
- 如何从html表单数组元素创建javascript数组
- 在 Backbone.js 中为集合中的一个元素创建详细信息页面
- 动态 DOM 元素创建
- 每 5 个元素创建一个新对象
- 下划线 从对象元素创建对象数组
- 从 2 个特定元素创建网格
- 维基百科如何从
- mongodb:如何为每个数组元素创建_id
- 如何为每 5 个元素创建一个 DIV
- 如何为自定义聚合物元素创建方法并在主应用程序中调用它
- jQuery元素创建,值传递
- 我无法基于实际的 HTML 元素创建类
- 在 jQuery 中迭代数组时,每隔一个元素创建新列表
- Mouseover/out难题上的JS元素创建/删除
- 为Angular指令创建的元素创建名称
- Javascript/jquery从具有相同rel的元素创建数组
- 如何使用DOM元素创建表单的副本