2

我的代码:

var cssApplier;
        window.onload = function () {
            rangy.init();
            cssApplier = rangy.createCssClassApplier("highlight", {
                ignoreWhiteSpace: true,
                elementTagName: "span",
                elementProperties: {
                    id: new Date()
                }
            })
        };    

但是当我打电话时

cssApplier.applyToSelection();

它总是呈现具有相同 id 属性的跨度,我如何设置 id 属性动态?

4

1 回答 1

3

new Date()在您调用rangy.createCssClassApplier(). 为每个创建的元素生成一个新元素的唯一方法id是,如果 Rangy 提供了在每次创建新元素时指定回调的方法,而目前它没有。但是,无论如何,这是我一直在考虑添加的内容。我在 Rangy 问题跟踪器中添加了一个问题:

https://github.com/timdown/rangy/issues/143

更新

您现在可以通过传入onElementCreate选项对象在 Rangy 1.3 中执行此操作:

var id = 0;
var applier = rangy.createApplier("someClass", {
    onElementCreate: function(el) {
        el.id = "rangySpan_" + (id++);
    }
});
于 2012-12-29T18:27:13.647 回答