0

我正在开发一个电子邮件模板编辑器,用户将从预先存在的模板列表中进行选择,并能够根据需要更新模板。我在跨浏览器使用 CKEditor 插件时遇到问题,因此我尝试创建自己的插件。当用户选择一个模板时,它会在一个模式窗口中打开。为了更改图像,我包含了在模式关闭时删除的输入标签。这很好用,但如果用户想回到编辑器,输入按钮就不再存在了。

如果不存在,我想在模式窗口中添加输入按钮。我尝试检查属性的长度,但无论它是否存在,我都无法返回 null 以外的值。我的代码如下:

function template1InputButtons() {
    if ($("#imageInput1T1").length == 0) {
        $('<input id="imageInput1T1" type="file" name="newImage1T1" onchange="previewImage1T1(this)" />').insertBefore('.article_media');
    }
}

如果我第一次打开它,长度就变成了一个,所以没有按预期添加任何内容。如果我删除然后再次单击按钮,长度显示为 0,并且输入按预期正确添加。如果我然后删除输入并再次单击按钮,尽管控件不存在,但长度仍为 1。

有任何想法吗?

4

3 回答 3

0

尝试这个:

function template1InputButtons() {
    if (!$("#imageInput1T1")) {
        $('<input id="imageInput1T1" type="file" name="newImage1T1" onchange="previewImage1T1(this)" />').insertBefore('.article_media');
    }
}

并确保您已将其放置在 ready 函数中。

于 2013-11-15T11:26:39.830 回答
0

尝试这个:

if ($("body").find("#imageInput1T1").length == 0) {
        $('<input id="imageInput1T1" type="file" name="newImage1T1" onchange="previewImage1T1(this)" />').insertBefore('.article_media');
    }
于 2013-11-15T11:27:45.410 回答
0

问题是在其他模式上发现类属性 article_media 的类似发现我的错误无论如何感谢您的帮助

于 2013-11-15T12:00:36.780 回答