鉴于以下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应该触发,这不是原因,如下面的代码片段所示.

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

怎么解决这个?
在事件选择中可能会出错
以下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支票破解了我正在寻找的验证.

模式select2:eventname没有做任何事情,即没有记录,没有钩子.这很奇怪.我select2-eventname在互联网上找到的随机网站上找到了这种模式.这对我来说是非常奇怪和令人不安的,这看起来像是一个简单的代码.
您似乎正在使用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:selecting是select2-selecting(注意-而不是a :).
查看事件文档时的其他显着更改
change用于包含added和removed属性,用于检查添加和删除内容的时间.现在,您应该使用该select2:select事件来检查何时添加内容以及select2:unselect何时删除内容.select2-selecting 就是现在 select2:selectingselect2-removing 就是现在 select2:unselectingselect2-removed 就是现在 select2:unselectselect2-opening 就是现在 select2:openingselect2-open 就是现在 select2:open| 归档时间: |
|
| 查看次数: |
1467 次 |
| 最近记录: |