【问题标题】:How to pass arguments to jQuery widget?如何将参数传递给 jQuery 小部件?
【发布时间】:2012-07-19 20:16:49
【问题描述】:

这是一个菜鸟问题。

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

(函数($){ $.widget("myApp.myDialog", { _create: fnction() {...} // 创建一个对话框 _init: fnction() {...} // 打开一个对话框 }) }(jQuery));

点击按钮打开这个对话框如下:

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

到目前为止,一切都很好。我希望这是有道理的。

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

【问题讨论】:

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


    【解决方案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/

    【讨论】:

      猜你喜欢
      • 2013-01-31
      • 2016-02-01
      • 2020-08-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-12-24
      • 2011-05-16
      • 1970-01-01
      相关资源
      最近更新 更多