作者:一只猿
原文地址:
转载请注明出处,谢谢
帮助说明
如果您认为QuoJS只是一个触摸事件管理器,那你就错了,它是一个功能丰富的类库,无需第三方JavaScript库(例如 jQuery, Prototype, Kendo ...)来创建基于浏览器应用程序的复杂项目。
如何使用
QuoJS使用的命名空间是$$,所以如果你需要的话,你还可以使用其它的JavaScript类库例如(jQuery,Zepto...)使用通用符号$。
1
2
3
4
5
6
7
8
9
10
11
|
// Find all <span> elements in <p> elements
$$(
'span'
,
'p'
);
//Subscribe to a tap event with a callback
$$(
'p'
).tap(
function
() {
// affects "span" children/grandchildren
$$(
'span'
,
this
).style(
'color'
,
'red'
);
});
// Chaining methods
$$(
'p > span'
).html(
'tapquo'
).style(
'color'
,
'blue'
);
|
查询方法
QuoJs有DOM元素查询引擎与其它著名的类库非常相似.你已经使用的jQuery的很多方法在这里都可以使用.
1
2
3
4
5
6
7
8
9
|
.get(index)
.find(
'selector'
)
.parent()
.siblings(
'selector'
)
.children(
'selector'
)
.first()
.last()
.closest(
'selector'
)
.each(callback)
|
元素方法
QuoJs有DOM元素查询引擎与其它著名的类库非常相似.你已经使用的jQuery的很多方法在这里都可以使用.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
// Get/Set element attribute
.attr(
'attribute'
)
.attr(
'attribute'
,
'value'
)
.removeAttr(
'attribute'
)
// Get/Set the value of the "data-name" attribute
.data(
'name'
)
.data(
'name'
,
'value'
)
// Get/Set the value of the form element
.val()
.val(
'value'
)
// Show/Hide a element
.show()
.hide()
// get object dimensions in px
.offset(
'selector'
)
.height()
.width()
// remove element
.remove()
|
样式方法
QuoJS可以轻松管理你任何DOM元素的CSS样式,这些方法很箱子,你很容易记住所有的CSS方法
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
// set a CSS property
.style(
'css property'
,
'value'
)
// add/remove a CSS class name
.addClass(
'classname'
)
.removeClass(
'classname'
)
.toggleClass(
'classname'
)
// returns true of first element has a classname set
.hasClass(
'classname'
)
// Set a style with common vendor prefixes
.vendor(
'transform'
,
'translate3d(50%, 0, 0)'
);
$$(
'article'
).style(
'height'
,
'128px'
);
$$(
'article input'
).addClass(
'hide'
);
var
houses = $$(
'.house'
);
if
(houses.hasClass(
'ghost'
)) {
houses.addClass(
'buuhh'
);
}
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
// get first element's .innerHTML
.html()
// set the contents of the element(s)
.html('
new
html
')
// get first element'
s .textContent
.text()
// set the text contents of the element(s)
.text(
'new text'
)
// add html (or a DOM Element) to element contents
.append(), prepend()
// If you like set a new Dom Element in a existing element
.replaceWith()
// Empty element
.empty()
$$(
'article'
).html(
'tapquo'
);
var
content = $$(
'article'
).html();
//content is 'tapquo'
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
// add event listener to elements
.on(type, [selector,]
function
);
// remove event listener from elements
.off(type, [selector,]
function
);
// triggers an event
.trigger(type);
//If loaded correctly all resources
.ready(
function
);
// Subscribe for a determinate event
$$(
".tapquo"
).on(
"tap"
,
function
);
// Trigger custom event
$$(
".quojs"
).trigger(
"loaded"
);
// Loaded page
$$.ready(
function
() {
alert(
"QuoJS rulz!"
);
});
|
手势事件
既然QuoJs支持浏览器的触摸事件,那么你有无数的事件和手势来帮助你做任何一个项目
1
2
3
4
5
6
7
8
|
//Tap event, common event
.tap(
function
);
//Long tap event (650 miliseconds)
.hold(
function
);
//A tap-delay event to combine with others events
.singleTap(
function
);
//If you send two singleTap
.doubleTap(
function
);
|
滑动方法
不仅有基本的滑动方法,常见的应用程序中有很多的滑动你都可以使用
1
2
3
4
5
6
7
8
|
.swipe(
function
);
//Detect if is swipping
.swiping(
function
);
//Swipe directions
.swipeLeft(
function
);
.swipeRight(
function
);
.swipeDown(
function
);
.swipeUp(
function
);
|
捏方法(
类似iphone图片缩小的手势 )
As with the previous gesture, QuoJS have easy control over this gesture and its variations.
1
2
3
4
5
6
|
.pinch(
function
);
//Detect if is pinching
.pinching(
function
);
//Pinch zoom
.pinchIn(
function
);
.pinchOut(
function
);
|
旋转方法(
Rotate methods)
1
2
3
4
5
6
|
.rotate(
function
);
//Detect if is rotating
.rotating(
function
);
//Rotate directions
.rotateLeft(
function
);
.rotateRight(
function
);
|
Ajax方法
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
$$.get(url, [parameters], [callback], [mime-type]);
$$.post(url, [parameters], [callback], [mime-type]);
$$.put(url, [parameters], [callback], [mime-type]);
$$.
delete
(url, [parameters], [callback], [mime-type]);
$$.json(url, [parameters], [callback]);
$$.json(url, {id: 1980, user:
'dan'
},
function
(data){ ... });
$$.ajax({
type:
'POST'
,
// defaults to 'GET'
data: {user:
'soyjavi'
, pass:
'twitter'
},
dataType:
'json'
,
//'json', 'xml', 'html', or 'text'
async:
true
,
success:
function
(response) { ... },
error:
function
(xhr, type) { ... }
});
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
//Default Settings
$$.ajaxSettings = {
async:
true
,
success: {},
error: {},
timeout: 0
};
//Set de default timeout to 1 second (1000 miliseconds)
$$.ajaxSettings.timeout = 1000;
//Set de default callback when ajax request failed
$$.ajaxSettings.error =
function
(){ ... };
$$.ajaxSettings.async =
false
;
|
环境事件
The environment object contains useful information to learn more about your device.
1
2
3
4
5
6
7
|
var
env = $$.environment();
env.browser
//[STRING] Browser of your mobile device
env.isMobile
//[BOOLEAN]
env.os.name
//[STRING] iOS, Android, Blackberry...
env.os.version
//[STRING] Versión of OS
env.screen
//[OBJECT] With properties: width & height
|