加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

twitter-bootstrap – 为什么bootstrap-datepicker会在显示时触

发布时间:2020-12-18 00:24:34 所属栏目:安全 来源:网络整理
导读:我有一个模态,如下图所示, 当我选择包含日期选择器的输入字段时,引导模态事件.on(‘show.bs.modal’)被触发,这是非常有问题的,因为当合法显示模态时我正在采取各种异步操作.我认为模态已经显示,并且此事件不应该被触发. 我在bootstrap事件’show.bs.modal’
我有一个模态,如下图所示,

当我选择包含日期选择器的输入字段时,引导模态事件.on(‘show.bs.modal’)被触发,这是非常有问题的,因为当合法显示模态时我正在采取各种异步操作.我认为模态已经显示,并且此事件不应该被触发.

我在bootstrap事件’show.bs.modal’上有一个监听器,如下所述,

handleModalLaunch: () ->
    $(@modalClass).on 'show.bs.modal',(event) =>
      return if event.dates
      promise = new Promise ( (resolve,reject) =>
        @setModalData(event)
        if (@interactionData)
          resolve(@interactionData)
        else
          reject(false)
      )
      promise.then(
        (results) =>
          @trigger 'setRooms',@callBacks
          @trigger 'setStudentInfo',@callBacks
        (err) ->
          err
      )

并且有效地,侦听器再次被触发,随后调用promise和相关的回调,事件的触发是有问题的,因为模式已经显示并且我不希望这些回调/承诺被运行.

我添加了return if if event.dates(event.dates是一个独特的datepicker事件的属性),基本上在日期选择器触发模态显示事件的情况下短接此代码,但当然,这是hacky和我我想更好地理解为什么datepicker本身会触发show事件.潜在地,因为我的节目甚至听众都与模态的类相关联,显示日期选择器的行为可能继承了父模态的目标,并且可能本身就是模态,即模态(datepicker)被显示并且因为日期选择器从父模态继承,事件触发,好像它是’显示’的父模式.我完全混淆了这个吗? (实际上,我现在看起来更清楚,但仍然需要了解如何修复.)

解决方法

这是日期选择器库中的错误.您可以在 github here上跟踪它.@ kroeder提供了解决方法
$("#my-datepicker").datepicker().on('show.bs.modal',function(event) {
    // prevent datepicker from firing bootstrap modal "show.bs.modal"
    event.stopPropagation(); 
});

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读