使用变量外部函数

时间:2013-11-03 23:39:37

标签: javascript jquery

我正在尝试将numbers设置为与digits相等。 我怎样才能做到这一点?我试过'numbers' : digits,但它不起作用。

// Checks if the checkbox is checked or not
$('#digits').change(
  function(){
    if ($(this).is(':checked')) {
      digits = true;
    } else {
      digits = false;
    }
});

// When the button "apply" is pressed it sets numbers equal to digits and calls the function test
$(document).ready(function(){       
    $('#apply').test({
        'numbers': digits // This is where I'm stuck
    });
});

(function($){
  var methods = {
    init : function( options, callbacks) {
      var settings = $.extend({
        'numbers': true,
    }, options);
    ...
    ...
    ...
    etc
    $.fn.test= function(method) {
      alert("SUCCESS");
      ...
      ...    
    };
})(jQuery);

Working Example (JSFIDDLE)

1 个答案:

答案 0 :(得分:2)

初始化插件时,您会在该阶段为其赋予值digits。从您发布的代码中,我猜它是undefined。您需要在每次更改插件时通过复选框更新插件上的值。

快速解决方法是将初始化插件的代码移动到复选框的change处理程序,尽管您也可以考虑初始化插件一次并实现setter方法以允许您更新值初始化后的插件。

   // Checks if the checkbox is checked or not
    $('#digits').change(
      function(){

        $('#apply').test({
            'numbers': this.checked 
        });
    });