【问题标题】:when click on close button and when click on suggestions text with select2当单击关闭按钮并单击带有 select2 的建议文本时
【发布时间】:2013-03-23 12:40:34
【问题描述】:

我想检查用户是否点击了 select2 关闭按钮或仅触发了更改事件。这是我的 select2 输入:

<%= hidden_field_tag :query, params[:query], :id => "query_txt" %>

在我的咖啡脚本文件上:

$('#query_txt').select2(
   #select2 options here, ajax, initSelection...etc
   #
   #
   #
   $("#query_txt").on "change", (e) ->
     if ($(".select2-search-choice-close").click ->)
       console.log "click on close"
 )

问题是,如果我点击建议文本,我可以在控制台上看到文本“click on close”

换句话说,如果您点击 x/remove 按钮,如下图所示:

如果您单击 建议文本 会发生相同的行为,如下图所示:

你可以在http://jsfiddle.net/nqWNJ/9/看到一个示例代码

我的问题是如何知道用户何时点击建议文本或点击关闭按钮。

谢谢

【问题讨论】:

    标签: javascript jquery coffeescript jquery-select2


    【解决方案1】:

    您需要添加另一个将在点击时触发的事件。

    $queryTxt = $('#query_txt') #cache object
    $queryTxt.select2(
      #select2 options here, ajax, initSelection...etc
      #
      #
      #
    )
    $queryTxt.on 'change', (obj) ->
      console.log 'clicked on close' if obj.removed
      console.log 'change was triggered'
    

    【讨论】:

    • 它不起作用我可以看到触发了相同的事件。对于这种情况,触发的事件是console.log 'change was triggered'。谢谢!
    • 所以内容可能是动态创建的。然后尝试使用创建点击事件的委托。
    • 对不起,我有同样的问题,这个修复对我不起作用。对不起,我在这两种情况下都看到相同的消息change was triggered。谢谢!
    • 是的,我在jsfiddle.net/nqWNJ/9 中添加了一个示例代码。我已经更新了我的问题。谢谢!
    • 好的,我查看了文档。似乎 select2 插件将所有事件委托给输入,因此我编写的委托将不起作用,因为输入始终是目标。但是,我找到了一个解决方案,它真的很简单。 Select2 在回调中返回一个对象,您可以检查它是否在那里添加或删除。我编辑了代码。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-09-16
    • 1970-01-01
    • 1970-01-01
    • 2022-08-10
    • 2016-07-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多