2014-03-06 68 views
0

我有下面列出的代碼片段。我正在構建一個動態複選框輸入,並希望將一個函數綁定到它的onclick。我的問題是,我想從onclick訪問參數(粗體顯示),這怎麼可能?如何通過複選框輸入上的oncheck事件來重用現有變量來訪問它

function MultipleCheckboxesEditor(args) { var $input, $picker; var defaultValue; var scope = this;

this.init = function() { 
     $input = $("<INPUT type=text class='editor-text' />"); 
     $input.width($(args.container).innerWidth() - 25); 
     $input.appendTo(args.container); 

     $picker = $("<div class='editor-multiplecheckboxes-picker' />").appendTo(args.container); 
     $picker.append("<div class='editor-multiplecheckboxes-helper'></div>"); 

     $('.editor-multiplecheckboxes-helper').append(
      args.column.editor.choices.map(function (value) { 
       return '<div><input type="checkbox" value="{0}" onclick="refreshMulticheck(this)"{1}>{0}</input><div>'.f(
        value, 
        jQuery.inArray(value, args.item[args.column.field].split(',')) >= 0 ? 'checked="checked"' : ''); 
      }) 
    ); 

正如你所看到的,有創造了一個複選框,但在目前的refreshMulticheck功能,我只能通過this變量的複選框訪問...

我應該如何去爲了獲得訪問原始參數變量? 謝謝!

+1

我相信你正在尋找'bind'看到:[jQuery.bind]( https://api.jquery.com/bind/)或[underscore.bind](http://underscorejs.org/#bind) – blakev

+0

這看起來像它! :)我正在做一些測試,以確認。 – ibiza

回答

1

而不是增加這

onclick="refreshMulticheck(this)" 

每個複選框,你可以做這樣的事情:

$('.editor-multiplecheckboxes-helper').on('click', 'input[type=checkbox]', function (event) { 
    // do something 
}); 
相關問題