javascript - 限制插件中创建的元素javascript的数量
问题描述
我在我的论坛中使用sceditor
bbcode,一切正常,直到我遇到这个问题。
使用下一个代码(仅粘贴),我创建了一个表情符号下拉列表来选择一个特定的表情符号。
问题是我只想将 4 行表情符号显示为 maxinum..and(不创建存储在表情符号数据库中的其余部分(280 个表情符号),否则此代码会创建所有 280 个表情符号并减慢我的网站。
// START_COMMAND: Emoticons
emoticon: {
exec: function (caller) {
var editor = this;
var createContent = function (includeMore) {
var moreLink,
opts = editor.opts,
emoticonsRoot = opts.emoticonsRoot || '',
emoticonsCompat = opts.emoticonsCompat,
rangeHelper = editor.getRangeHelper(),
startSpace = emoticonsCompat &&
rangeHelper.getOuterText(true, 1) !== ' ' ? ' ' : '',
endSpace = emoticonsCompat &&
rangeHelper.getOuterText(false, 1) !== ' ' ? ' ' : '',
content = createElement('div'),
line = createElement('div'),
perLine = 0,
emoticons = extend(
{},
opts.emoticons.dropdown,
includeMore ? opts.emoticons.more : {}
);
appendChild(content, line);
perLine = Math.sqrt(Object.keys(emoticons).length);
on(content, 'click', 'img', function (e) {
editor.insert(startSpace + attr(this, 'alt') + endSpace,
null, false).closeDropDown(true);
e.preventDefault();
});
each(emoticons, function (code, emoticon) {
appendChild(line, createElement('img', {
src: emoticonsRoot + (emoticon.url || emoticon),
alt: code,
title: emoticon.tooltip || code
}));
if (line.children.length >= perLine) {
line = createElement('div');
appendChild(content, line);
}
});
if (!includeMore && opts.emoticons.more) {
moreLink = createElement('a', {
className: 'sceditor-more'
});
appendChild(moreLink,
document.createTextNode(editor._('More')));
on(moreLink, 'click', function (e) {
editor.createDropDown(
caller, 'more-emoticons', createContent(true)
);
e.preventDefault();
});
appendChild(content, moreLink);
}
return content;
};
editor.createDropDown(caller, 'emoticons', createContent(false));
},
txtExec: function (caller) {
defaultCmds.emoticon.exec.call(this, caller);
},
tooltip: 'Insert an emoticon'
},
// END_COMMAND
我试图限制下一行,但它不起作用,它破坏了 js 代码。
if (line.children.length >= perLine) {
if (line.children.length <= 4) { //added line
line = createElement('div');
appendChild(content, line);
}
}
我只想在 js 代码中解决这个问题。有几行,我认为线索在appendChild()
,做错了什么?
解决方案
推荐阅读
- javascript - 倒数计时器执行外部函数
- php - windows - 根 composer.json 需要 PHP 扩展 ext-gd *
- javascript - 我的变量没有传递给函数
- r - 获取 tibble/df 中多个类别的响应百分比
- html - Forloop 在 HTML 页面 Laravel 中保持为空
- java - 带有 Azure 身份验证错误的 Spring Boot OAuth2.0 - UserInfoEndpoint 中缺少客户端注册所需的“用户名”属性名称:天蓝色
- matlab - 通过使用 repmat 的 2D 曲线旋转生成 3D 绘图后提取 Z 值
- reactjs - 在 Reactjs 中使用全局字符串变量
- python - 使用令牌的 Bitbucket API 连接
- php - 如何使用外键约束连接多个表