为什么不能正确选择2个事件?

Joh*_*ohn 0 jquery-select2

鉴于以下coffeescript

class ModalController
  constructor: (modalClass) ->
    @modalClass = modalClass
    @enableSelect2()
    @clearSelectOptions()

  enableSelect2: () ->
    $('.select2-init').select2()
      .on 'select2-open', (e) ->
        console.log e
      .on 'select2:selecting', (e) =>
        console.log 'added'
        @validatePresenceOf($(e.target))
Run Code Online (Sandbox Code Playgroud)

我希望当我选择上面的代码时,特别是线路调用.on 'select2:selecting应该触发,这不是原因,如下面的代码片段所示.

https://cl.ly/image/2P3d3F0y3k1o/Screen%20Recording%202015-04-03%20at%2010.38%20AM.gif

我基于select2文档对此有所了解

https://cl.ly/image/2Z3k0q2b2H1V/Image%202015-04-03%20at%2010.40.37%20AM.png

怎么解决这个?

在事件选择中可能会出错

以下coffeescript

  enableSelect2: () ->
    $('.select2-init').select2()
      .on 'change', (event) =>
        if event.added
          @validatePresenceOf($(event.target))
      .on 'select2:selecting', (e) =>
        console.log "selecting"
      .on 'select2:select', (e) =>
        console.log "select"
      .on 'select2-removed', (e) =>
        @validatePresenceOf($(e.target))
Run Code Online (Sandbox Code Playgroud)

产生以下内容,请注意没有日志声明(虽然我已经通过使用event.added支票破解了我正在寻找的验证.

https://cl.ly/image/1l3Y3h1a1e2t/Image%202015-04-03%20at%2011.05.41%20AM.png

模式select2:eventname没有做任何事情,即没有记录,没有钩子.这很奇怪.我select2-eventname在互联网上找到的随机网站上找到了这种模式.这对我来说是非常奇怪和令人不安的,这看起来像是一个简单的代码.

Kev*_*own 6

似乎正在使用Select2 3.x,但您正在引用Select2 4.0.0文档中的内容.

Select2 4.0.0文档:https:
//select2.github.io/ Select2 3.5.2文档:http://select2.github.io/select2/

主页上还有一个链接到Select2 3.5.2文档的链接.


您正在使用select2-open哪个似乎正在工作并且是3.5.2事件,但您也尝试使用select2:selecting,这是一个4.0.0事件.Select2 3.5.2事件select2:selectingselect2-selecting(注意-而不是a :).

查看事件文档时的其他显着更改

  • change用于包含addedremoved属性,用于检查添加和删除内容的时间.现在,您应该使用该select2:select事件来检查何时添加内容以及select2:unselect何时删除内容.
  • select2-selecting 就是现在 select2:selecting
  • select2-removing 就是现在 select2:unselecting
  • select2-removed 就是现在 select2:unselect
  • select2-opening 就是现在 select2:opening
  • select2-open 就是现在 select2:open