我如何创建一个选择器,就像jQuery有jQuery()或$()一样
How can I create a selector like how jQuery has jQuery() or $()?
我一直在为自定义布局脚本创建自己的库。为了便于使用,我试图模拟jQuery如何通过jQuery()公开其库,这使得代码非常易读和直观。我已经想出了一些有效的方法,但我不确定这是否是正确的方法。所有函数都"附加"到库中,而不是将函数保留在内部。无论如何,到目前为止,对我有效的代码如下:
slateUI = (function(slateID){
slateUI.ID = slateID;
return slateUI;
});
一个相关的函数看起来像这样:
slateUI.doSomething = function(content)
{
//DID SOMETHING USING slateUI.ID
}
我对OOP类语言的特性还相当陌生。我相信有更好的方法来解决这个问题。我遇到的问题是将Element传递给一个调用的函数,例如:
slateUI("#someSlate").doSomething(...)
从slateUI获取其元素。ID
这是正确的方法吗?或者这是我想出的一种被黑客入侵的方法,并且有一些直接的方法可以做到这一点?
// function which returns a new SlateUI object (so we dont have to use the "new" keyword)
slateUI = function ( slateID ) {
return new SlateUI( slateID );
};
// class definition
function SlateUI ( slateId ) {
this.id = slateId;
}
// methods added to the class prototype (allows for prototypical inheritance)
SlateUI.prototype.someFunction = function() {
alert( this.id );
return this; // adding this line to the end of each method allows for method chaining
};
// usage
slateUI( 'someid' ).someFunction();
问题的简短版本是,您正在寻找链接函数的能力。
这可以简单地通过从每个函数返回相关对象来实现。如果函数没有其他返回值,那么只返回this
变量,将控制权传递回调用方。
相关文章:
- 如何用jquery动画改变背景颜色,就像一个过渡
- 我如何创建一个选择器,就像jQuery有jQuery()或$()一样
- jQuery动画的持续时间就像一个延迟
- 如何使用CSS或JQuery使整个网页看起来更小(就像Chrome的缩小功能一样)
- Jquery/javascript方式发送50个表单,就像发送1个表单一样
- 如何将bind()pass-through(to on())转换为delegate()-就像jQuery 1.7.1代码
- 如何使用jquery或javascript让图像从页面的一侧滑动到另一侧?就像在 thepiratebay.se 上一样
- 如何定位锚点“悬停”事件,就像在 jQuery 中的 css a:hover 一样
- Jquery 复制页面的 html,就像 jquery 滑块启动之前一样
- 尝试使用vanilla JS创建一个每个方法,就像在jQuery中一样
- 在 PHP 中使用每个,就像 jquery 一样
- jQuery鼠标每次滚动整个窗口,就像aplle iphone5网站一样
- 有没有办法使用 javascript (jquery) 使元素的行为**完全**就像它被点击一样(一种独特的情况)
- 在 JavaScript 中调用函数,就像在 JQuery 中一样
- 在 jQuery 中是否可以在不使页面闪烁的情况下自动刷新?就像在脸书中一样
- JQuery UI 翻转文本,就像在 gumroad.com 中一样
- 在javascript中,如何用更少的代码创建多个克隆,就像jQuery中的clone()方法一样
- 添加到WebSocket.onmessage()中,就像jQuery添加到事件中一样
- jQuery Mobile,垂直导航条,就像iphone联系人的字母列表
- jQuery在元素中搜索文本就像SQL查询一样