Javascript 扩展每个html元素

Javascript 扩展每个html元素,javascript,custom-element,x-tag,Javascript,Custom Element,X Tag,使用x-tag,我试图找到一种方法来扩展我放入的每个html元素是:“ajaxpop”属性 我想做的是,当我单击一个具有is:“ajaxpop”属性的元素时,我将执行一些动态ajax加载。这将是我开发一个可管理系统的良好起点 我知道我可以用一些不同的方法来做,但我想知道有没有一种方法可以像这样做:“每一个原生html元素” xtag.register('ajax-pop', { extends: 'WHAT SHOULD I WRITE HERE???', lifecycle

使用x-tag,我试图找到一种方法来扩展我放入的每个html元素
是:“ajaxpop”
属性

我想做的是,当我单击一个具有is:“ajaxpop”属性的元素时,我将执行一些动态ajax加载。这将是我开发一个可管理系统的良好起点

我知道我可以用一些不同的方法来做,但我想知道有没有一种方法可以像这样做:“每一个原生html元素”

xtag.register('ajax-pop', {

    extends: 'WHAT SHOULD I WRITE HERE???',

    lifecycle: {
        created: function () {                
        },
        inserted: function () {                
        },
        removed: function () { },
        attributeChanged: function () { }
    },
    methods: {
        someMethod: function () { }
    },
    accessors: {
        popUrp: {
            attribute: {
                name: "pop-url"
            }
        },
    },
    events: {
        tap: function () { },
        focus: function () { }
    }
});

我相信你用错了x标签。X-tag旨在实现全新的标签;您试图做的只是修改不同的预先存在的DOM元素。这可以在纯javascript中轻松完成,或者在jquery中更轻松地通过为每个所需元素分配一个共享类来完成。

类型扩展必须逐个元素定义。单个自定义图元不能扩展多个标准图元。 例如,每个自定义元素都拥有自己的原型,不能重用

如果要扩展按钮(例如),必须使用JavaScript编写:

xtag.register('ajax-pop', {
    extends: 'button',
...
在HTML页面中:

<button is="ajax-pop">
...

...

您可以使用x-tag的
委托
伪,并通过向希望具有此行为的元素添加
数据-
属性来完成此操作:


我认为x-tag、polymer和web组件系统不仅仅是为了创建新的标签。它是关于创建可维护和可重用的组件或扩展它们的。当您需要扩展标记I know alrady:)时,这是一个解决方案。我需要一些扩展字符串名称,将应用于多个元素。或者至少我需要扩展多个html元素的知识。谢谢你的回答。我想知道是否有一个基本原型(我知道有)并扩展它:D:DIt不是你扩展的原型,而是HTML元素。并且不能使用相同的cutom名称扩展两个不同的元素。:-/。您必须为扩展的每个元素提供一个新的自定义名称。是的,我想我将使用旧的行为,或者我将只放置一些查找其他元素的元素,如jquery逻辑。
xtag.addEvent(document.body, 'tap:delegate([data-pop])', function (e) {
  var uri = this.getAttribute('data-pop');

  $.get(uri).done(function (res) {
    this.innerHTML = res;
  }.bind(this));
});