Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
462 views
in Technique[技术] by (71.8m points)

jquery - multiselect biding after ajax load

i have this code :

    $('body').live('mousemove mouseover', function () {

    $("#parent_task").multiselect({
        selectedList: 4,
       click: function(event, ui){
            var cntInput=$("#child_task").multiselect("widget").find('input[value='+ui.value+']').parent('label');
            if(ui.checked){ cntInput.hide() }else{cntInput.show() }
       }

    }).multiselectfilter();
    $("#child_task").multiselect({
        selectedList: 4,
       click: function(event, ui){
            var cntInput=$("#parent_task").multiselect("widget").find('input[value='+ui.value+']').parent('label');
            if(ui.checked){ cntInput.hide() }else{cntInput.show() }
       }
    }).multiselectfilter();

});

how is possible to start multiselect after ajax load , right now i'm using $('body').live('mousemove mouseover', function () { , but is biding after mouse over or mouse move , and it doesn't look good , exist another way ? thank you ;) link to plugin http://www.erichynds.com/jquery/jquery-ui-multiselect-widget/ Sorry for my english :)

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

Well i think you could call multiselect() after AJAX completes or in the succcess function:

$.ajax({
  url: yoururl,
  method: 'POST',
  success: function(data){
            //do what you need to do and then initialize the multiselect

    $("#parent_task").multiselect({
        selectedList: 4,
       click: function(event, ui){
            var cntInput=$("#child_task").multiselect("widget").find('input[value='+ui.value+']').parent('label');
            if(ui.checked){ cntInput.hide() }else{cntInput.show() }
       }

    }).multiselectfilter();
    $("#child_task").multiselect({
        selectedList: 4,
       click: function(event, ui){
            var cntInput=$("#parent_task").multiselect("widget").find('input[value='+ui.value+']').parent('label');
            if(ui.checked){ cntInput.hide() }else{cntInput.show() }
       }
    }).multiselectfilter();

 }

In this way your DOM is ready and you can call the plugin.


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...