如何将参数传递给jQuery小部件?

时间:2012-07-19 09:10:37

标签: javascript jquery-ui client-side jquery-widgets

这是一个noob问题。

假设我在点击按钮时打开了jQuery对话框。该对话框实现为jQuery小部件:

(function ($) {

  $.widget("myApp.myDialog", {

     _create: fnction() {...} // create a dialog

     _init: fnction() {...} // open a dialog    
  })

}(jQuery));

我按下按钮打开此对话框,如下所示:

$('#myButton').bind('click', function() { $(this).myDialog(); });

到目前为止,这么好。我希望这是有道理的。

现在,我希望在打开对话框时禁用该按钮,并在关闭对话框时启用它。如何将按钮传递给对话框小部件?

1 个答案:

答案 0 :(得分:1)

由于您希望制作dialog,因此您可能希望将$.ui.dialog作为$.widget的第二个参数传递,以便继承对话框的功能。

当您创建myDialog的实例时,您可以在那里启用/禁用该按钮。

(function($) {
    $.widget('myApp.myDialog', $.ui.dialog, {
        
    });
    
    $('.dialog').myDialog({
        open: function() {
            $('#myButton').prop('disabled', true);
        },
        close: function() {
            $('#myButton').prop('disabled', false);
        }            
    });
}(jQuery));

示例 - http://jsfiddle.net/tj_vantoll/v4sYX/