背景

项目一个jsp写的前后端不分离项目需要一个弹出层“,要求兼容IE浏览器同时时间比较紧张,所以我选择layuilayer组件开发layer组件content参数我用的是模版字符串 ” “”来拼接弹窗内容,但是IE是不支持的,所以改为自己拼接弹窗模版字符串这个时候就出现了问题

需求: 用layui实现一个弹出效果
关键点:layercontent参数,content: ‘< div onclike=”test(’+‘1’+‘)”>’

content可传入的值是灵活多变的,不仅可以传入普通的html内容,还可以指定DOM,更可以随着type不同不同。譬如:
/!*
 如果是页面层
 */
layer.open({
  type: 1, 
  content: '传入任意文本html' //这里content是一个普通的String
});
layer.open({
  type: 1,
  content: $('#id') //这里content是一个DOM,注意:最好该元素存放body最外层,否则可能被其它的相对元素影响
});
//字符模版
$.post('url', {}, function(str){
  layer.open({
    type: 1,
    content: "<div&gt;</div&gt;"
  });
});
/!*
 如果是iframe层
 */
layer.open({
  type: 2, 
  content: 'http://sentsin.com' //这里content是一个URL,如果你不想让iframe出现滚动条,你还可以content: ['http://sentsin.com', 'no']
}); 
/!*
 如果是用layer.open执行tips层
 */
layer.open({
  type: 4,
  content: ['内容', '#id'] //数组第二项即吸附元素选择器或者DOM
});        

影响

出发DOM事件时候报错事件绑定函数也失去效果

分析

由于控制台报错“jquery Syntax error”,所以我怀疑是jquery版本layui内部引用jqueyr版本冲突问题。但是我引用顺序调整后,还会报错,只能继续找。这个时候我发现报错内容还有一段话“unrecognized expression”(无法识别表达式子),在整个实现弹出层的过程中,只有content参数中用到表达式。经过一顿测试发现是onclike事件函数穿参的时候字符拼接问题。所以我去掉函数的参数就解决

小结

记住下次要认真阅读报错信息,很关键,节省很多时间

原文地址:https://blog.csdn.net/qq_40793132/article/details/125360164

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任

如若转载,请注明出处:http://www.7code.cn/show_34218.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱suwngjj01@126.com进行投诉反馈,一经查实,立即删除

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注