Blog项目切换Markdown编辑器———LayUI弹出层弹出写在页面的内容导致的各种bug

news2024/11/15 15:29:05

【2024.5.24回顾】

1 问题描述(描述完自己解决了…)

正常情况

点击添加文章按钮后,弹出文章编辑界面,如果用富文本功能编辑,则一切正常。可以多次打开、关闭

Markdown

如果在弹出层中点击了切换编辑器按钮,会成功切换为markdown文本编辑器,可以编辑相应的文章并提交。

但是,如果继续在这个页面操作就会出现:

第二次打开还是Markdown编辑器而且只清空了标题,内容还是上次提交的内容。并且这次打开之后,再点击提交文章,文章能够成功提交但是弹层不会自动关闭,点击×也不行,就卡在这了。

第一次点击切换编辑器:

在这里插入图片描述

第一次提交成功后,再次点击添加文章:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

原因应该是因为空指针异常,页面卡在那里了。简单修改后可以关闭了。

2 $('#addForm').html()与$('#addForm')

在这里插入图片描述
在这里插入图片描述

$('#addForm').html()返回的是字符串类型,表示 #addForm 元素的内部 HTML 内容。

$('#addForm') 返回的是 jQuery 对象,表示 #addForm 元素本身。相当于一个重定向,所以在弹出层里对它进行的修改和填写,会保留下来,再次添加只不过是将它的位置改变到了弹出层里边而已。之所以会清空标题是因为弹出成功的函数里有一句$('#addForm form')[0].reset();

$('#addForm').html():

case 'add':
var index = layer.open({
    type: 1,//1 html文本,dom/js对象  2 放链接,链接到其他jsp/网页链接
    title: '添加文章',
    area: ['90%', '90%'],//宽高
    // content: '<div style="padding: 11px;">任意 HTML 内容</div>'
    content: $('#addForm').html(),//.html返回内部所有html 字符串形式 子节点 把它放在这 放一段页面
    //content: $('#addForm'),//       把它放在这 放一段页面
    success: function () {//success指弹出成功  感觉这里边的东西都可以直接写在外面啊-->不一样 有区别
        //查询博客类型并回显到选择下拉框
        $.post(//ajax3
            '/type?method=selectBlogType',
            function (result) {
                console.log(result);
                $('#addBlogTypeId option:gt(0)').remove();//清除原来的数据
                $(result.data).each(function () {//result是一个封装对象包括code、msg、data需要.data才能访问到查询结果
                    $('#addBlogTypeId').append('<option value="' + this.id + '">' + this.name + '</option>')
                });
                form.render('select');
            },
            'json'
        );
    }
})

由于某些暂未分析出来的原因,这一系列操作(切换编辑器等)都在原页面的基础上生效,而页面弹出的只是一个复制品,所以不会有任何反馈,点击按钮也没反应,函数里边的打印到控制台都没有。

$('#addForm'):

case 'add':
var index = layer.open({
    type: 1,//1 html文本,dom/js对象  2 放链接,链接到其他jsp/网页链接
    title: '添加文章',
    area: ['90%', '90%'],//宽高
    // content: '<div style="padding: 11px;">任意 HTML 内容</div>'
    //content: $('#addForm').html(),//.html返回内部所有html 字符串形式 子节点 把它放在这 放一段页面
    content: $('#addForm'),//       把它放在这 放一段页面
    success: function () {//success指弹出成功  感觉这里边的东西都可以直接写在外面啊-->不一样 有区别
        //查询博客类型并回显到选择下拉框
        $.post(//ajax3
            '/type?method=selectBlogType',
            function (result) {
                console.log(result);
                $('#addBlogTypeId option:gt(0)').remove();//清除原来的数据
                $(result.data).each(function () {//result是一个封装对象包括code、msg、data需要.data才能访问到查询结果
                    $('#addBlogTypeId').append('<option value="' + this.id + '">' + this.name + '</option>')
                });
                form.render('select');
            },
            'json'
        );
    }
})

这样相当于是将页面上的元素重定向至layer层进行操作,所以自始至终都是在改变一个表单。解决bug后基本可以实现与单独写一个jsp页面一样的效果,但是无法恢复为富文本编辑器而是停留在markdown编辑器,而且不能够完全清除上一篇博客的内容,还需要修改。

而且这样弄的话编辑博客内容的回显功能更难做。

单独写一个添加jsp就没这么多事!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1789110.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Android RelativeLayout Rtl布局下的bug:paddingStart会同时作用于左右内边距

问题现象 如上图&#xff0c;只是设置了paddingStart&#xff0c;在RTL布局下&#xff0c;左右都产生了10dp的间距。其他布局如LinearLayout&#xff0c;FrameLayout则没有这个问题。 private void positionAtEdge(View child, LayoutParams params, int myWidth) {if (isLayou…

simCSE句子向量表示(1)-使用transformers API

SimCSE SimCSE: Simple Contrastive Learning of Sentence Embeddings. Gao, T., Yao, X., & Chen, D. (2021). SimCSE: Simple Contrastive Learning of Sentence Embeddings. arXiv preprint arXiv:2104.08821. 1、huggingface官网下载模型 官网手动下载&#xff1a;pri…

【Python数据分析--Numpy库】Python数据分析Numpy库学习笔记,Python数据分析教程,Python数据分析学习笔记(小白入门)

一&#xff0c;Numpy教程 给大家推荐一个很不错的笔记&#xff0c;个人长期学习过程中整理的 Python超详细的学习笔记共21W字点我获取 1-1 安装 1-1-1 使用已有的发行版本 对于许多用户&#xff0c;尤其是在 Windows 上&#xff0c;最简单的方法是下载以下的 Python 发行版…

史上最全,呕心沥血总结oracle推进SCN方法(三)

作者介绍&#xff1a;老苏&#xff0c;10余年DBA工作运维经验&#xff0c;擅长Oracle、MySQL、PG数据库运维&#xff08;如安装迁移&#xff0c;性能优化、故障应急处理等&#xff09; 公众号&#xff1a;老苏畅谈运维 欢迎关注本人公众号&#xff0c;更多精彩与您分享。前面介…

实现k8s网络互通

前言 不管是docker还是k8s都会在物理机组件虚拟局域网&#xff0c;只不过是它们实现的目标不同。 docker&#xff1a;针对同一个物理机&#xff08;宿主机&#xff09; k8s&#xff1a;针对的是多台物理机&#xff08;宿主机&#xff09; Docker 虚拟局域网 K8S虚拟局域网 …

腾讯云centos上安装docker

下面的操作是在root用户下操作的,如果非root用户在命令行前加上sudo 1. 系统及内核查看 操作系统&#xff1a;64位的CentOS 7或更新版本。内核版本&#xff1a;最低要求是3.10&#xff0c;推荐使用3.10或更高版本。 #查看内核版本 (base) [klfwjfweaVM-0-6-centos ~]$ uname…

专业开放式耳机什么牌子更好?六大技巧教你不踩坑!

相信很多入坑的朋友再最开始挑选耳机的时候都会矛盾&#xff0c;现在市面上这么多耳机&#xff0c;我该怎么选择&#xff1f;其实对于开放式耳机&#xff0c;大家都没有一个明确的概念&#xff0c;可能会为了音质的一小点提升而耗费大量的资金&#xff0c;毕竟这是一个无底洞。…

OpenAI的Sam Altman搞核聚变了?!究竟是创新还是疯狂?|TodayAI

据《华尔街日报》报道&#xff0c;西雅图地区的核聚变公司Helion Energy正在与人工智能公司OpenAI洽谈一项重要交易&#xff0c;OpenAI计划“购买大量电力为数据中心提供动力”。这一消息引起了广泛关注。 OpenAI的首席执行官兼联合创始人Sam Altman已向Helion投资了3.75亿美元…

【StableDiffusion】2024.6.4 亲测成功,无魔法 Civitai 镜像,国内下载 Civitai 模型的方法

一、废话不说&#xff0c;直接开始 废话&#xff1a;请注意&#xff0c;这个插件不是万能的&#xff0c;有一些模型无法下载&#xff0c;大概能下载 70% 左右的模型 1.github下载插件 https://github.com/tzwm/sd-webui-model-downloader-cn/tree/main 这个步骤不用我多说了…

用框架思维学Java:集合概览

集合这个词&#xff0c;耳熟能详&#xff0c;从小学一年级开始&#xff0c;每天早上做操时都会听到这两个字&#xff1a; 高中数学又学习到了新的集合&#xff1a; 那么Java中的集合是什么呢&#xff1f; 一&#xff0c;前言 1&#xff0c;什么是Java集合 数学集合是Java集…

110、python-第四阶段-7-Socket服务端开发

服务端代码&#xff1a; 启动客户端工具 netAssist.exe&#xff0c;连接socket服务&#xff0c;如下&#xff0c;进行通信

echarts学习:基本使用和组件封装

前言 我在工作中使用echarts较少&#xff0c;这就导致每次使用时都要从头再来&#xff0c;这让我很头疼。因此我决心编写一系列文章将我参与工作后几次使用echarts所用到的知识记录下来&#xff0c;以便将来可以快速查阅。 一、基本使用 像我一样的新手&#xff0c;想要入门e…

【方法论】钟澄国家杰青 鲸吞法 写文献综述、大论文框架必备

Xlab2020的个人空间-Xlab2020个人主页-哔哩哔哩视频 老师指南 就是1号文件有了后&#xff0c;也就是【】概括了之后&#xff0c;我们会运行下程序&#xff08;程序我会让学生share&#xff09;。然后程序会执行这么一个操作&#xff0c;复制下【】内容&#xff0c;然后在第二个…

在Windows11系统上搭建SFTP服务器

利用OpenSSH搭建SFTP服务器 下载安装部署OpenSSH创建一个测试账户测试链接为SFTP用户配置根目录下载安装部署OpenSSH 参考链接 部署完启动服务要使用管理员模式。 net start sshd创建一个测试账户 使用PC的微软账户是访问不了SFTP的。 需要使用被微软账户覆盖掉的系统账户和…

ATA-3080C功率放大器的基本原理是什么

功率放大器是一种电子设备&#xff0c;用于将输入信号的功率增加到更高的水平&#xff0c;以便驱动负载或输出设备。它在许多应用中都起着重要作用&#xff0c;包括音频放大、无线通信、雷达系统和工业控制等。 功率放大器的基本原理可以通过两个关键概念来解释&#xff1a;放大…

【机器学习】机器学习与推荐系统在电子商务中的融合应用与性能优化新探索

文章目录 引言机器学习与推荐系统的基本概念机器学习概述监督学习无监督学习强化学习 推荐系统概述基于内容的推荐协同过滤混合推荐 机器学习与推荐系统的融合应用用户行为分析数据预处理特征工程 模型训练与评估模型训练模型评估 个性化推荐基于用户的协同过滤基于商品的协同过…

汇凯金业:开盘买入还是收盘时买入好

在股票交易中&#xff0c;选择在开盘时还是收盘时进行买入操作&#xff0c;取决于投资者的策略和市场状况。以下是两种策略的优缺点及其适用情境&#xff1a; 开盘时买入 优点&#xff1a; 快速入场&#xff1a;如果夜间或开盘前出现了重大利好消息&#xff0c;及时在开盘时…

CRM客户关系管理系统功能概览

CRM客户关系管理系统是一款集成了多种功能的客户管理工具&#xff0c;旨在帮助企业高效地管理客户关系&#xff0c;提升销售业绩。以下是该系统的功能模块及描述&#xff1a; 一、待办事项 今日需联系客户&#xff1a;提供客户列表&#xff0c;支持多条件查询&#xff0c;包括客…

唯众智联网(AIoT)应用开发教学实训解决方案

一、引言 随着信息技术的飞速发展&#xff0c;物联网&#xff08;IoT&#xff09;和人工智能&#xff08;AI&#xff09;技术逐渐融合&#xff0c;形成了智联网&#xff08;AIoT&#xff09;这一新兴领域。智联网通过智能化设备、传感器、云计算等技术手段&#xff0c;实现了数…

对接专有钉钉(浙政钉)登陆步骤

背景 因为项目需要对接浙政钉&#xff0c;我想应该和之前对接阿里云的钉钉登陆钉钉登陆类似&#xff0c;就上网搜索看看&#xff0c;出现了个专有钉钉的概念&#xff0c;就一时间搞不清楚&#xff0c;钉钉&#xff0c;专有钉钉&#xff0c;浙政钉的区别&#xff0c;后续稍微理…