为什么 select2 事件不能正确触发?
why won't select2 events fire correctly?
给定以下 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))
我希望当我做出选择时,上面的代码特别是调用 .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))
生成以下内容,注意没有日志语句(尽管我已经通过使用 event.added
检查破解了我正在寻找的验证。
模式select2:eventname
没有做任何事情,即没有日志记录,没有挂钩。这很奇怪。我在互联网上的一个随机站点上找到了 select2-eventname
模式。这对我来说非常奇怪和令人不安,这似乎是一段简单的代码。
可能有错字。应该是
.在 'select2-selecting' ...
而不是
.在 'select2:selecting' ...
您似乎正在使用 Select2 3.x,但您引用的内容来自 Select2 4.0.0 文档。
Select2 4.0.0 文档:https://select2.github.io/
Select2 3.5.2 文档:http://select2.github.io/select2/
主页上还有一个 link linkSelect2 3.5.2 文档。
您正在使用 select2-open
,它似乎在工作并且是一个 3.5.2 事件,但您也在尝试使用 select2:selecting
,这是一个 4.0.0 事件。 select2:selecting
的 Select2 3.5.2 事件是 select2-selecting
(注意 -
而不是 :
)。
查看活动文档时的其他显着变化
change
用于包含 added
和 removed
属性,用于检查添加和删除内容的时间。现在您应该使用 select2:select
事件来检查何时添加内容,并使用 select2:unselect
来检查何时删除内容。
select2-selecting
现在是 select2:selecting
select2-removing
现在是 select2:unselecting
select2-removed
现在是 select2:unselect
select2-opening
现在是 select2:opening
select2-open
现在是 select2:open
给定以下 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))
我希望当我做出选择时,上面的代码特别是调用 .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))
生成以下内容,注意没有日志语句(尽管我已经通过使用 event.added
检查破解了我正在寻找的验证。
模式select2:eventname
没有做任何事情,即没有日志记录,没有挂钩。这很奇怪。我在互联网上的一个随机站点上找到了 select2-eventname
模式。这对我来说非常奇怪和令人不安,这似乎是一段简单的代码。
可能有错字。应该是
.在 'select2-selecting' ...
而不是
.在 'select2:selecting' ...
您似乎正在使用 Select2 3.x,但您引用的内容来自 Select2 4.0.0 文档。
Select2 4.0.0 文档:https://select2.github.io/
Select2 3.5.2 文档:http://select2.github.io/select2/
主页上还有一个 link linkSelect2 3.5.2 文档。
您正在使用 select2-open
,它似乎在工作并且是一个 3.5.2 事件,但您也在尝试使用 select2:selecting
,这是一个 4.0.0 事件。 select2:selecting
的 Select2 3.5.2 事件是 select2-selecting
(注意 -
而不是 :
)。
查看活动文档时的其他显着变化
change
用于包含added
和removed
属性,用于检查添加和删除内容的时间。现在您应该使用select2:select
事件来检查何时添加内容,并使用select2:unselect
来检查何时删除内容。select2-selecting
现在是select2:selecting
select2-removing
现在是select2:unselecting
select2-removed
现在是select2:unselect
select2-opening
现在是select2:opening
select2-open
现在是select2:open