Javascript jQuery Multiselect委托事件使用;关于;

Javascript jQuery Multiselect委托事件使用;关于;,javascript,jquery,ajax,jquery-multiselect,Javascript,Jquery,Ajax,Jquery Multiselect,我熟悉使用“on”来确保jquery方法处于活动状态(因为我通过Ajax呈现页面) 例: 但是,我需要对jquerymultiselect执行同样的操作。只有在重新加载页面时,下方才起作用。但是,如果我的内容是通过Ajax加载的,MultiSelect根本不会渲染 $("select").multiselect({ click: function(event, ui){ alert(ui.value + ' ' + (ui.checked ? 'checked' : 'unch

我熟悉使用“on”来确保jquery方法处于活动状态(因为我通过Ajax呈现页面)

例:

但是,我需要对jquerymultiselect执行同样的操作。只有在重新加载页面时,下方才起作用。但是,如果我的内容是通过Ajax加载的,MultiSelect根本不会渲染

$("select").multiselect({
   click: function(event, ui){
      alert(ui.value + ' ' + (ui.checked ? 'checked' : 'unchecked') );



   },
   beforeopen: function(){
      $callback.text("Select about to be opened...");
   },
   open: function(){
      $callback.text("Select opened!");
   },
   beforeclose: function(){
      $callback.text("Select about to be closed...");
   },
   close: function(){
      $callback.text("Select closed!");
   },
   checkAll: function(){
      $callback.text("Check all clicked!");
   },
   uncheckAll: function(){
      $callback.text("Uncheck all clicked!");
   },
   optgrouptoggle: function(event, ui){
      var values = $.map(ui.inputs, function(checkbox){
         return checkbox.value;
      }).join(", ");





      alert("CheckboXES " + (ui.checked ? "checked" : "unchecked") + ": " + values);

   }
});
所以问题是如何使用$('body')等格式重写上面的内容?谢谢你的帮助。这里是新手

因为您指定了(但是,如果我的内容是通过Ajax加载的,则MultiSelect根本不会渲染。)

在这里,我使用ajax和绑定multiselect加载select选项。如果这对你有帮助,请告诉我

$(document).ready(function(e) {         
        var form_data = $("#frm").serialize();
        var form_url = $("#frm").attr("action");
        var form_method = $("#frm").attr("method").toUpperCase();

        $("#loadingimg").show();

        $.ajax({
            url: form_url, 
            type: form_method,      
            data: form_data,     
            cache: false,
            success: function(returnhtml){     
                alert('binded options to select on ajax success');
                $.when(assignOptions()).done(function(){
                  bind();
                });              
            }           
        });    
});

function assignOptions(){
  $("#display_list").append('<option value="W1">VICccccc</option><option value="W2">NSW</option><option value="W6">TAS 3</option>');
}
function bind(){    
  $("select").multiselect({
   click: function(event, ui){
      alert(ui.value + ' ' + (ui.checked ? 'checked' : 'unchecked') );

   },
   beforeopen: function(){
      $callback.text("Select about to be opened...");
   },
   open: function(){
      $callback.text("Select opened!");
   },
   beforeclose: function(){
      $callback.text("Select about to be closed...");
   },
   close: function(){
      $callback.text("Select closed!");
   },
   checkAll: function(){
      $callback.text("Check all clicked!");
   },
   uncheckAll: function(){
      $callback.text("Uncheck all clicked!");
   },
   optgrouptoggle: function(event, ui){
      var values = $.map(ui.inputs, function(checkbox){
         return checkbox.value;
      }).join(", ");

      alert("CheckboXES " + (ui.checked ? "checked" : "unchecked") + ": " + values);

   }
});
}
$(文档).ready(函数(e){
var form_data=$(“#frm”).serialize();
var form_url=$(“#frm”).attr(“操作”);
var form_method=$(“#frm”).attr(“method”).toUpperCase();
$(“#加载img”).show();
$.ajax({
url:form_url,
类型:form_方法,
数据:表格数据,
cache:false,
成功:函数(返回HTML){
警报(“ajax成功时选择的绑定选项”);
$.when(assignOptions()).done(function()函数){
bind();
});              
}           
});    
});
函数赋值选项(){
$(“显示列表”).append('viccccnswtas 3');
}
函数bind(){
$(“选择”).multiselect({
单击:功能(事件、用户界面){
警报(ui.value+“”+(ui.checked?'checked':'unchecked');
},
beforeopen:函数(){
$callback.text(“选择即将打开…”);
},
打开:函数(){
$callback.text(“选择已打开!”);
},
beforeclose:function(){
$callback.text(“选择即将关闭…”);
},
关闭:函数(){
$callback.text(“选择关闭!”);
},
checkAll:function(){
$callback.text(“选中所有已单击!”);
},
uncheckAll:function(){
$callback.text(“取消选中所有已单击!”);
},
optgrouptoggle:函数(事件、ui){
变量值=$.map(ui.inputs,函数)(复选框){
返回checkbox.value;
}).加入(“,”);
警报(“复选框”+(ui.checked?):“未选中”)+:“+值);
}
});
}

你能包括一个jsfiddle吗不知道我能在jsfiddle中说明多少。。。。你的HTML在哪里?你只是把代码粘贴在小提琴上,我可以做到。添加fiddle的目的是显示到目前为止您已经实现了什么。对此表示抱歉-我没有意识到我的粘贴已经消失了。-谢谢你,戴夫。我想修改相同的方法来处理使用“on”的代理,但没有正确的语法…我发现这是在解决一个类似的问题---尝试一下这个,然后发回不幸的是,到目前为止没有任何效果。你写的那把小提琴似乎确实解决了我的问题,但这里还有其他的问题。如果调用/当前页面本身是通过ajax呈现的(在这种情况下,将不会有任何html附加到#display_列表中),这有关系吗?我的流程是这样的。登录页面->单击登录按钮->通过ajax呈现第二页->在第2页上执行操作,然后单击下一步->第3页通过ajax呈现。第3页包含multiselect,它只显示一个选择列表,没有jquerymultiselect插件的好处。如果我直接重新加载第3页,则加载良好。(第3页通过ajax呈现,第3页包含multiselect,它只显示一个选择列表)此ajax成功后,您可以在我的JSFIDLE中调用bind()函数,该函数将应用multiselect插件。顺便说一下,我的firebug显示了一些只在ajax调用中发生的错误-请看是的Dave,我就是这么做的。下面是My$.ajax->$.ajax({url:'/myapp/index.php/translate/view',键入:“POST”,数据:表单数据,缓存:false,成功:函数(结果){alert('binded options to select on ajax success');$.when(assignOptions()).done(函数(){bind();})$(“#main_container”).html(result);}});您是否与JSFIDLE中的外部资源进行了比较,您是否遗漏了一些内容。
$(document).ready(function(e) {         
        var form_data = $("#frm").serialize();
        var form_url = $("#frm").attr("action");
        var form_method = $("#frm").attr("method").toUpperCase();

        $("#loadingimg").show();

        $.ajax({
            url: form_url, 
            type: form_method,      
            data: form_data,     
            cache: false,
            success: function(returnhtml){     
                alert('binded options to select on ajax success');
                $.when(assignOptions()).done(function(){
                  bind();
                });              
            }           
        });    
});

function assignOptions(){
  $("#display_list").append('<option value="W1">VICccccc</option><option value="W2">NSW</option><option value="W6">TAS 3</option>');
}
function bind(){    
  $("select").multiselect({
   click: function(event, ui){
      alert(ui.value + ' ' + (ui.checked ? 'checked' : 'unchecked') );

   },
   beforeopen: function(){
      $callback.text("Select about to be opened...");
   },
   open: function(){
      $callback.text("Select opened!");
   },
   beforeclose: function(){
      $callback.text("Select about to be closed...");
   },
   close: function(){
      $callback.text("Select closed!");
   },
   checkAll: function(){
      $callback.text("Check all clicked!");
   },
   uncheckAll: function(){
      $callback.text("Uncheck all clicked!");
   },
   optgrouptoggle: function(event, ui){
      var values = $.map(ui.inputs, function(checkbox){
         return checkbox.value;
      }).join(", ");

      alert("CheckboXES " + (ui.checked ? "checked" : "unchecked") + ": " + values);

   }
});
}