我正在为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> '
$('.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/,黑色的按钮是一个添加了无用脚注的按钮。白色按钮是一个无关但同样无用的功能,因此可以忽略它。
我意识到我现在所做的就是插入一个无处可去的锚,只能一步一步来,对吧?;-)
发布于 2012-08-02 05:27:26
如果我没理解错的话,你只需要把变量移到外部作用域:
var fnCount = 0
insertFootnote = function(){
var fnAnchor = '<a href="#fn-' + ++fnCount + '"><sup>' + fnCount + '</sup></a> '
$('.edit').execCommand('inserthtml', fnAnchor);
}现在,变量不是在每次调用时都设置为0,而是在最初设置为0,然后在每次调用时递增。
如果应该将值绑定到调用它的元素,则可以使用data存储它。
https://stackoverflow.com/questions/11767115
复制相似问题