将属性添加到Grape Js中的Child元素?

时间:2018-08-28 07:29:04

标签: javascript jquery html canvas grapesjs

我在grape js工作了很长时间。

现在我面临一些初始化问题。

问题:

这是我尝试在编辑器中添加的组件。

<div class="page">
      <div class="col1"></div>
      <div class="col2"></div>
 </div> 

在添加了这些组件之后,我尝试将一些计算值添加到这样的元素中,

element.on('component:add',function(ele){
   ele.addAttributes({
     'data-top' : topOffset,
     'data-left' : leftOffset,
   });

   editor.render();// For render Updated html
});

但是,此代码仅更新.page组件。

如何将这些属性添加到.col1,.col2组件内的.page元素中?

1 个答案:

答案 0 :(得分:1)

我阅读了文档,似乎没有一种直接的方法来获得想要的东西。但是,您可以执行以下代码段之类的操作。迭代所有子元素并将属性添加到它们。

editor.on('component:add', function (ele, argument) {
   ele.setAttributes({
     'data-top' : 10,
     'data-left' : 20,
   });

   ele.attributes.components.models.forEach(function(item){
      if(item.attributes.tagName == 'div') {
         item.setAttributes({
           'data-top' : 10,
           'data-left' : 20,
         })
      }
   })

   editor.render();// For render Updated html
})