1

我正在为 redactor.js 开发一个插件,它允许用户添加脚注。最终脚注将被写入数据库上的一个单独的表中,但目前这只是一个模型 - 它是一个更大的大学项目的一部分,它只需要看起来像它在这个阶段工作。顺便说一句,我是一个 JS 初学者。

我在编辑器中添加了一个自定义按钮,该按钮使用回调运行该函数。如您所见,每次按下按钮时,fnCount 变量都会重置为 0。我不知道如何获取最后一个值并增加它。我在这里看到了一些类似的问题,但没有一个是完全相同的,因为我正在使用 redactor API 进行此操作。

这是我的代码:

// Insert footnote plugin

insertFootnote = function(){
    var fnCount = 0
    var fnAnchor = '<a href="#fn-' + ++fnCount + '"><sup>' + fnCount + '</sup></a>&nbsp'
    $('.edit').execCommand('inserthtml', fnAnchor);
}


// Initialise editor

$(document).ready(
    function()
    {       
        $('.edit').redactor({
            focus: true, 
            buttonsAdd: ['|', 'footnote', 'reference'], 
            buttonsCustom: {
                footnote: {
                    title: 'Insert footnote', 
                    callback: insertFootnote 
                },

            }
        });
    }
);

我在这里举了一个例子:http: //fclty.org/redactor/黑色按钮是添加无用脚注的按钮。白色按钮是一个不相关但同样无用的功能,因此可以忽略。

我意识到我现在所做的只是插入一个无处可去的锚,但一步一步,是吗?;-)

4

1 回答 1

1

如果我正确理解了这个问题,您只需将变量移动到外部范围:

var fnCount = 0

insertFootnote = function(){    
    var fnAnchor = '<a href="#fn-' + ++fnCount + '"><sup>' + fnCount + '</sup></a>&nbsp'
    $('.edit').execCommand('inserthtml', fnAnchor);
}

现在该变量在每次调用时都不会设置为 0,而是最初设置为 0,然后在每次调用时递增。

如果该值应该与调用它的元素相关联,则可以使用它来存储它data

于 2012-08-01T21:27:25.943 回答