在没有选择器先决条件的情况下创建自定义jQuery函数
Creating custom jQuery function without selector prerequisite
我知道我可以通过使用$.fn.myFunction
构造函数创建自定义jQuery插件,并将JavaScript中的自定义函数调用为$('selector').myFunction()
。
然而,对于我目前正在进行的项目,我需要能够定义一个不需要选择器就能工作的函数。这实际上是针对MessageBox插件的,它的操作方式与C#的MessageBox
类类似。因此,理想情况下,我希望将函数创建为MessageBox
,然后按如下方式调用它:
var myMessage = $.MessageBox();
,然后依次为myMessage.Show();
请注意,在函数调用的开头,jQuery引用中缺少选择器制动器。
如有任何关于最佳实践的建议,我们将不胜感激。
这应该有效:
jQuery.MessageBox = function() {
var show = function() {
// something...
}
var hide = function() {
// something...
}
return {
show: show,
hide: hide
}
}
重新折叠有一个很好的点,因为您正在弄乱主命名空间。如果你有更多的对象,比如MessageBox,那么一个解决方案是创建你自己的命名空间,如下所示:
jQuery.myLib = {
MessageBox: function() {
var show = function() {
// something...
}
var hide = function() {
// something...
}
return {
show: show,
hide: hide
}
}
}
这意味着您只在主名称空间中占据一个位置(在本例中是库的名称myLib
(。你可以这样称呼它:
jQuery.myLib.MessageBox.show()
(function ($) {
$.MessageBox = function () {
var show = function () {
// something...
}
var hide = function () {
// something...
}
return {
show: show,
hide: hide
}
}
})(Jquery);
我认为您最好将范围扩大到即时调用函数,以避免与名称空间发生冲突。
相关文章:
- DataTables-创建自定义分页样式(加载更多样式)
- 如何在javascript中创建自定义事件
- 在angularjs中创建自定义控件的推荐方法
- 创建自定义函数以在函数上运行完整的多选下拉列表
- 在jquery和javascript中创建自定义日历背后的逻辑
- Magento创建自定义的职业表格,并从CMS页面调用
- 如何为javascript创建自定义标签?或者这是我不知道的其他事情吗;我不知道
- 如何创建自定义属性以添加if.bind
- 创建自定义URL
- 在 Backbone.js 中创建自定义“同步”方法
- 在 Chrome 扩展程序中创建自定义事件的最惯用方式
- 如何使用引导程序创建自定义滚动条
- 在画布中创建自定义图像对象
- AngularJS -- 创建自定义数据绑定和 ng-repeat
- 创建自定义 Javascript 对象的惯用方法有哪些
- 如何在高图表中创建自定义线型
- 在命名空间中创建自定义事件
- 如何使用jquery创建自定义弹出窗口
- 使用javascript中的变量创建自定义URL
- 如何使用jQuery扩展方法为元素或类选择器创建自定义插件