The best way your going to get some help on this is to setup an example on
http://jsfiddle.net/



On Mon, Aug 6, 2012 at 8:45 AM, Krok Krokonoster <[email protected]>wrote:

> Hi,
> My jQuery pretty much sucks so I'm having this problem where I need to
> bind to the Show event before actually showing the Modal.
> This all happen inside a plugin, and I figured it might be better showing
> the whole thing:
>
> (function ($) {
>     $.fn.extend({
>         selectServiceProviders: function (options, callback) {
>             var defaults = {
>                 url: '',                       // must be set to url to
> action returning service providers selection form
>                 currentSelection: ''    // currently selected items
>             };
>             options = $.extend(defaults, options);
>             return this.each(function () {
>                 var url = options["url"];
>                 $('#modalContent', this).load(url);
>
>                 // Bind to Show Event : See if we have a current selection
> and if so check off checkboxes accordingly
>                 $(this).bind('show', function () {
>                     var currentSelection = options["currentSelection"];
>                     if (currentSelection != '') {
>                         $('[name=chkProviders]:checkbox').each(function ()
> {
>                             if (jQuery.inArray($(this).attr("id"),
> currentSelection) > -1) {
>                                 $(this).attr("checked", "checked");
>                             }
>                         });
>                     }
>                 });
>
>                 // Bind to Hide Event : Call the callback function when we
> close
>                 $(this).bind('hidden', function () {
>                     if (typeof callback == 'function') {
>                         var selectedIds = new Array();
>                         var selectedNames = new Array();
>
> $('input[name=chkProviders]:checked').each(function () {
>                             selectedIds.push($(this).attr('id'));
>                             selectedNames.push($(this).attr('value'));
>                         });
>                         callback.call(this, selectedIds, selectedNames);
>                     }
>                 });
>
>                 *// PROBLEM:  this should fire AFTER binding, but it does
> not (unless i have a breakpoint)*
>                 $(this).modal('show');
>             });
>         }
>     });
> })(jQuery);
>

Reply via email to