Apply jQuery UI widgets to ajax loaded elements

后端 未结 3 912
感动是毒
感动是毒 2020-12-18 01:21

I want to activate the jQueryUI button widget on a given selector, lets say \'.button\'.

Whats the best way to automatically activate the widget on any new \'.button

3条回答
  •  天涯浪人
    2020-12-18 02:07

    You have a few options here. First, there's the liveQuery plugin, like this:

    $(.button).liveQuery(function() { $(this).button(); });
    

    Another alternative is to call the selector on your elements when you load them, this for example finds all .button only in the response, so doesn't mess with existing elements before the ajax call:

    $.ajax({
       url: 'page.html'
       success: function(data) {
         //stuff...
         $('.button', data).button();
       }
    });
    

    Another similar approach if you have a lot going on is to have your plugins in a function like this:

    function rigUI(context) {
      $('.button', context).button();
      $('.date', context).datepicker();
    }
    
    $(rigUI); // Load at document.ready, default context is document
    
    //in ajax load love above call: rigUI(data);
    

提交回复
热议问题