訣竅是,在Widget工廠完成創建Widget之後,它基本上只是一個普通的插件。這意味着你可以進一步擴展它。
想法是保存原始函數,用自定義函數替換它,並使其通過選擇器。此代碼可以位於Widget工廠之後,第一次使用對象之前的任何位置。請在撥打$.widget()
之後將它放入您的插件文件中。
該示例中的小部件的名稱是test
。
// Save the original factory function in a variable
var testFactory = $.fn.test;
// Replace the function with our own implementation
$.fn.test = function(obj){
// Add the selector property to the options
$.extend(obj, { selector: this.selector });
// Run the original factory function with proper context and arguments
return testFactory.apply(this,arguments);
};
這確保this.selector
作爲命名選項通過。現在您可以通過參考this.options.selector
來訪問您工廠的任何地方。
作爲補充,我們不需要破解任何jQuery UI代碼。
太棒了。從來沒有想過這樣做。我需要玩弄我正在做的事情的論點,但看起來它會工作得很好。謝謝! – 2011-05-26 18:08:38