如何在redactor.js中为脚注插件使用jQuery来增加数字

how to increment a number using jQuery for a footnote plugin in redactor.js

本文关键字:jQuery 增加 数字 增加数 插件 脚注 redactor js      更新时间:2024-06-16

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

我在编辑器中添加了一个自定义按钮,它使用回调来运行函数。正如您所看到的,每次按下按钮时,fnCount变量都会重置为0。我不知道如何获取最后一个值并将其递增。我在这里看到了一些类似的问题,但它们都不完全相同,因为我使用的是编校器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/黑色按钮是添加无用脚注的按钮。白色按钮是一个不相关但同样无用的功能,因此可以忽略。

我意识到我现在所做的只是插入一个锚,这个锚不会去任何地方,但一步一个脚印,嗯?;-)

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

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

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

如果该值应绑定到调用它的元素,则可以使用data存储它。