我正在开发一个电子邮件模板编辑器,用户将从预先存在的模板列表中进行选择,并能够根据需要更新模板。我在跨浏览器使用 CKEditor 插件时遇到问题,因此我尝试创建自己的插件。当用户选择一个模板时,它会在一个模式窗口中打开。为了更改图像,我包含了在模式关闭时删除的输入标签。这很好用,但如果用户想回到编辑器,输入按钮就不再存在了。
如果不存在,我想在模式窗口中添加输入按钮。我尝试检查属性的长度,但无论它是否存在,我都无法返回 null 以外的值。我的代码如下:
function template1InputButtons() {
if ($("#imageInput1T1").length == 0) {
$('<input id="imageInput1T1" type="file" name="newImage1T1" onchange="previewImage1T1(this)" />').insertBefore('.article_media');
}
}
如果我第一次打开它,长度就变成了一个,所以没有按预期添加任何内容。如果我删除然后再次单击按钮,长度显示为 0,并且输入按预期正确添加。如果我然后删除输入并再次单击按钮,尽管控件不存在,但长度仍为 1。
有任何想法吗?