bootstrap fileinput和Select2不被注意的坑

很多时候我们会在项目中使用插件,比如fileinput和select2 都用到了,使用过程中没有什么问题,但是最后测试的时候,F12在页面发现每次初始化插件之后,关闭窗口都不会自动销毁,再次点击会默认为第二次初始化。所以多次点击之后,会看到向后台请求了多次URL。如何解决这个问题呢?

插件都提供了destroy方法,在每次初始化之前调用$("#DIV的ID的name").fileinput('destroy');都不起作用。

debugger之后,发现多次初始化之后在我们需要触发的click事件在向服务器按照初始化的次数多次发送请求,因为每次初始化之后我们都注册了click事件,所以在初始化之前先关闭注册的click事件:

在项目中,select2是在注册change事件的时候发送请求给服务器,所以在初始化之前关闭change事件,$ ("#envSelect").off('change');

fileinput是在上传文件成功之后filebatchuploadsuccess事件多次向服务器发送请求。所以初始化之前关闭filebatchuploadsuccess事件。

$ ("#uploadConfigFile").off('filebatchuploadsuccess');

之后发现每次点击都默认是新的初始化,只发送一次请求到服务器。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值