ajax请求后刷新div,通过ajax刷新div后,事件监听器不再起作用

这是重新加载按钮,它浮动在页面底部,它不包含在div#main-content中,点击后会刷新:

以下脚本将触发#main-content:的div重新加载

$(document).on("click", '#reload-maincontent', reloadMaincontentCollectorsPage);

function reloadMaincontentCollectorsPage() {

var reloadContent = location.href + " #main--content";

$("#main--content").css( "opacity","0" );

setTimeout(function() {

$("#main--content").load(reloadContent)

.css( "opacity","1" );

}, 600);

$(this).removeClass('toggleInfo');

};

如果我单击按钮重新加载div,它可以正常工作,但刷新的div中的事件监听器不再工作。在单击按钮后刷新div:

add add a can

...

这种结构有很多,它们显示的是来自数据库的不同图片。当我点击#add-cans div时,以下脚本应该启动,但在刷新后它不再起作用了:

$(document).on('click', '[data-catid]', getCanaddInformation);

function getCanaddInformation() {

var catid = $(this).data("catid");

var catName = $(this).data("cadd-catname");

var catCount = $(this).data("cadd-currcans");

$('#get-catname-uploader').text(catName);

$('#addcan-catid').val(catid);

}

脚本包含在jQuery下的head标记中。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1. 定义数据库表 在MySQL数据库中创建一个名为admin的表,包含以下字段: - id:管理员ID,主键,自增长 - username:管理员用户名,唯一 - password:管理员密码,存储加密后的密码 2. 后端代码实现 在Java项目中创建一个名为AdminController的控制器类,实现管理员登录功能。 2.1 加载页面 ``` @RequestMapping("/admin/login") public String toLogin() { return "admin/login"; } ``` 这段代码使用@RequestMapping注解映射/admin/login路径,返回admin/login视图,该视图用于显示管理员登录页面。 2.2 接收登录请求 ``` @PostMapping("/admin/doLogin") @ResponseBody public Map<String, Object> doLogin(String username, String password) { Map<String, Object> map = new HashMap<>(); Admin admin = adminService.getAdminByUsername(username); if (admin == null) { map.put("code", 1); map.put("msg", "用户名不存在"); } else { String decryptPwd = RSAUtils.decrypt(password, Constants.PRIVATE_KEY); if (decryptPwd.equals(admin.getPassword())) { map.put("code", 0); map.put("msg", "登录成功"); } else { map.put("code", 1); map.put("msg", "密码错误"); } } return map; } ``` 这段代码使用@PostMapping注解映射/admin/doLogin路径,接收前端传来的用户名和密码,并调用adminService的getAdminByUsername方法查询数据库中的管理员信息。 如果查询结果为空,说明用户名不存在,返回code为1,msg为“用户名不存在”。 如果查询结果不为空,说明用户名存在,将前端传来的加密后的密码解密并与数据库中存储的密码进行比对。 如果密码匹配,返回code为0,msg为“登录成功”。 如果密码不匹配,返回code为1,msg为“密码错误”。 2.3 加密密码 ``` Admin admin = new Admin(); admin.setUsername(username); String encryptPwd = RSAUtils.encrypt(password, Constants.PUBLIC_KEY); admin.setPassword(encryptPwd); adminService.addAdmin(admin); ``` 这段代码创建一个Admin对象,设置用户名和加密后的密码,并调用adminService的addAdmin方法将管理员信息添加到数据库。 3. 前端代码实现 使用LayUI框架和Ajax接口请求实现前端登录页面。 3.1 引入LayUI框架 在html代码中引入LayUI框架的CSS和JS文件: ``` <link rel="stylesheet" href="https://cdn.staticfile.org/layui/2.5.6/css/layui.min.css"> <script src="https://cdn.staticfile.org/layui/2.5.6/layui.min.js"></script> ``` 3.2 显示登录页面 在html代码中添加一个form表单,用于提交用户名和密码,并使用LayUI的form组件渲染表单: ``` <form class="layui-form" action=""> <div class="layui-form-item"> <label class="layui-form-label">用户名</label> <div class="layui-input-block"> <input type="text" name="username" required lay-verify="required" placeholder="请输入用户名" autocomplete="off" class="layui-input"> </div> </div> <div class="layui-form-item"> <label class="layui-form-label">密码</label> <div class="layui-input-block"> <input type="password" name="password" required lay-verify="required" placeholder="请输入密码" autocomplete="off" class="layui-input"> </div> </div> <div class="layui-form-item"> <div class="layui-input-block"> <button class="layui-btn" lay-submit lay-filter="login">登录</button> <button type="reset" class="layui-btn layui-btn-primary">重置</button> </div> </div> </form> ``` 3.3 发送登录请求 在html代码中添加一个script标签,使用Ajax发送登录请求,并根据后端返回的结果进行相应的处理: ``` <script> //监听提交 layui.form.on('submit(login)', function(data){ $.ajax({ url: '/admin/doLogin', type: 'post', dataType: 'json', data: data.field, success: function (res) { if (res.code === 0) { layer.msg(res.msg, {icon: 1, time: 2000}, function () { window.location.href = '/admin/index'; }); } else { layer.msg(res.msg, {icon: 2, time: 2000}); } }, error: function () { layer.msg('请求失败', {icon: 2, time: 2000}); } }); return false; }); </script> ``` 这段代码使用LayUI的form.on方法监听表单提交事件,使用Ajax发送登录请求,并根据后端返回的结果进行相应的处理。 如果code为0,说明登录成功,弹出提示框并跳转到管理员首页。 如果code为1,说明登录失败,弹出提示框显示错误信息。 如果请求失败,弹出提示框显示请求失败信息。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值