【问题标题】:jQuery UI Selectmenu events bindjQuery UI Selectmenu 事件绑定
【发布时间】:2012-02-29 21:40:35
【问题描述】:

我正在使用 JQuery UI Selectmenu 小部件 - http://wiki.jqueryui.com/w/page/12138056/Selectmenu

我正在尝试绑定更改事件。但它不起作用:

$(function() {
  $('select#items').selectmenu();
  $('select#items').bind("change",function(){
     alert('x');
   });  
});

有什么想法吗?

【问题讨论】:

    标签: jquery jquery-ui select-menu


    【解决方案1】:

    我找到了答案。所以这里是:

    $(function() {      
            $('#items').selectmenu({
                change: function() {
                    alert('x');
                }
            });
    });
    

    【讨论】:

    • 也可以稍后在启动选择菜单后添加 onchange 行为。只需选择具有选择菜单行为的项目并编辑更改属性,例如$('#items').change(function() {...})
    • @berliner 这个解决方案对我不起作用...反弹您的解决方案仅在打开页面时才有效。在更改选择时无效..
    • 两年后...这是唯一的解决方案吗?在我的项目中,有大量带有现有 change() 事件的选择框,并且都不能使用 selectmenu。
    • @user706420 $('body').on('selectmenuchange', 'select', function() { $(this).trigger('change') })?
    【解决方案2】:

    由于这首先出现在 Google 上并且没有给我想要的答案,因此查看了 jquery ui 代码后,可以在最初设置选择菜单、绑定到 selectmenuchange 事件后完成,如下所示。无论如何都为我工作。

    $('#items').selectmenu();
    
    $('#items').on('selectmenuchange',function() {
    
        alert("hello world");
    
    });
    

    【讨论】:

      【解决方案3】:

      我只是想出了一个简单的方法来解决这个问题。您基本上必须告诉选择菜单来触发更改事件。

      当你设置你的选择菜单时,使用这样的关闭方法:

      //Set select box to jQuery UI selectmenu
      $('select').selectmenu({
         close: function(event, ui){
            //Fire change event
            $(this).change();
         }
      });
      

      然后像这样定义你的更改事件:

      $('#container').on('change', 'select', function(e){
         alert('x');
      });
      

      【讨论】:

        猜你喜欢
        • 2014-08-27
        • 2016-11-09
        • 2023-04-10
        • 1970-01-01
        • 1970-01-01
        • 2011-01-01
        • 2010-11-29
        • 1970-01-01
        相关资源
        最近更新 更多