【问题标题】:Rangy: How to createCssClassApplier with dynamic elementPropertiesRangy:如何使用动态 elementProperties 创建 CssClassApplier
【发布时间】:2012-12-25 03:51:56
【问题描述】:

我的代码:

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

但是当我打电话时

cssApplier.applyToSelection();

它总是渲染一个具有相同 id 属性的 span,我如何设置 id 属性动态?

【问题讨论】:

  • Math.floor( new Date().getTime() * Math.random())
  • 同理:new Date().getTime() 但每次调用 applyToSelection() 函数时都不会更新属性:(

标签: javascript jquery rangy


【解决方案1】:

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

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

更新

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

var id = 0;
var applier = rangy.createApplier("someClass", {
    onElementCreate: function(el) {
        el.id = "rangySpan_" + (id++);
    }
});

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-01-24
    • 1970-01-01
    • 1970-01-01
    • 2015-06-22
    • 2011-05-26
    • 2023-03-11
    • 2020-07-17
    • 1970-01-01
    相关资源
    最近更新 更多