2

我试图设置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);

工作示例 (JSFIDDLE)

4

1 回答 1

2

当你初始化你的插件时,你给它digits那个阶段的值。根据您发布的代码,我猜它是undefined. 每次通过复选框更改插件时,您都需要更新插件上的值。

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

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

        $('#apply').test({
            'numbers': this.checked 
        });
    });
于 2013-11-03T23:44:11.287 回答