我的代码:
var cssApplier;
window.onload = function () {
rangy.init();
cssApplier = rangy.createCssClassApplier("highlight", {
ignoreWhiteSpace: true,
elementTagName: "span",
elementProperties: {
id: new Date()
}
})
};
但是当我打电话
cssApplier.applyToSelection();
它总是渲染具有相同 id 属性的跨度,我如何动态设置 id 属性?
最佳答案
new Date()
仅在您调用 rangy.createCssClassApplier()
时计算一次。为每个创建的元素生成新的 id
的唯一方法是,Rangy 是否提供了在每次创建新元素时指定回调的方法,但目前还没有。然而,无论如何,这是我一直在考虑添加的内容。我已向 Rangy 问题跟踪器添加了一个问题:
https://github.com/timdown/rangy/issues/143
更新
您现在可以在 Rangey 1.3 中通过在选项对象中传递 onElementCreate
来执行此操作:
var id = 0;
var applier = rangy.createApplier("someClass", {
onElementCreate: function(el) {
el.id = "rangySpan_" + (id++);
}
});
关于javascript - Rangy:如何使用动态 elementProperties 创建CssClassApplier,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14027538/