首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >扩展每个html元素

扩展每个html元素
EN

Stack Overflow用户
提问于 2015-12-10 23:41:46
回答 3查看 376关注 0票数 1

使用x-tag,我试图找到一种方法来扩展我放入is:"ajax-pop"属性的每个html元素。

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

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

代码语言:javascript
复制
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 () { }
    }
});
EN

回答 3

Stack Overflow用户

发布于 2015-12-11 16:38:00

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

如果你想扩展一个按钮(例如),你必须用JavaScript写:

代码语言:javascript
复制
xtag.register('ajax-pop', {
    extends: 'button',
...

并且,在HTML页面中:

代码语言:javascript
复制
<button is="ajax-pop">
...
票数 2
EN

Stack Overflow用户

发布于 2016-01-29 06:51:34

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

<article data-pop="/path/to/content.html"></article>

你的JavaScript应该是这样的:

代码语言:javascript
复制
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));
});

下面是一个代码示例:http://codepen.io/jpecor-pmi/pen/Vexqyg

票数 1
EN

Stack Overflow用户

发布于 2015-12-11 00:02:01

我相信您使用x-tag的方式是错误的。X-tag旨在用于实现全新的标记;您要做的只是修改不同的预先存在的DOM元素。这可以很容易地在纯javascript中完成,或者在jquery中通过为每个需要的元素分配一个共享类来更容易地完成。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34206010

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档