我正在编写一个插件,它将创建一些DIV并在插件初始化时将样式应用于它们。在下面的示例代码中,我正在对某些元素应用.disableSelection()
。document.ready()在jQuery插件初始化?
最初我在document.ready
包装中包含了这些东西,但后来发现这不是理想的解决方案,因为在文档加载完成后,有人可以很好地调用插件。我的理解是,document.ready
在文档加载时触发一次,就是这样。
如果是这种情况,我可以使用什么来代替document.ready
在插件初始化上应用样式等?
$.examplepluginname = {
id: 'examplepluginname'
,version: '1.0'
,copyright: 'Copyright (c) 2013 Example Name'
,uri: 'http://www.example.com/'
,licensed: {
MIT: 'http://www.opensource.org/licenses/mit-license.php'
,GPL: 'http://www.gnu.org/licenses/gpl.html'
}
/*,plugin: function(prepare,sort){
aPluginPrepare.push(prepare); // function(settings){doStuff();}
aPluginSort.push(sort); // function(valuesAreNumeric,sA,sB,iReturn){doStuff();return iReturn;}
}*/
,defaults: { // default settings
searchDefaultText: 'Search & hit ENTER to add to list' //Text to show when user is not entering a search term
}
};
(function($) {
//Attach this new method to jQuery
$.fn.extend({
//pass the options variable to the function
examplepluginname: function(options) {
var userSettings = $.extend($.examplepluginname.defaults, options)
//Switcher for when the user presses enter before search results come back
,selectOnlyResult = false
//Arrow key navigation setting
,displayBoxIndex = -1
;
/*
RUN INITIALIZATION SETTINGS
*/
$("#availableItems").disableSelection();
displayAvailableItems();
//Set the display styles
$('#tagSearch').css({
'width': '100%',
'border-radius': '5px',
'outline': '0 none',
'padding': '2px 3px',
'font-style': 'italic'
});
return this.each(function() {
});
}
});
})(jQuery);
我有点困惑。如果这是你写的插件,你应该将这些样式作为插件初始化的一部分应用到元素上...... – 2013-02-18 13:48:44
@AnthonyGrist你是什么意思?例如,我打算为某人调用'$('#examplepluginnamecontainer')。examplepluginname();'让插件生成插件运行所需的div和样式 - 就像jQueryUI一样。只需要用户制作一个容器,并让插件生成内部。 – 2013-02-18 13:52:22
对,所以你根本不需要'$(document).ready()'这样的事件。就你所关心的事情而言,它与事件无关。你可以在他们所调用的函数内执行所有**。 – 2013-02-18 13:53:22