More Related Content
KEY
Pimp your site with jQuery! TXT
PDF
PDF
DOCX
PDF
Feeds. использование и создание плагинов. Feeds API PDF
PDF
What's hot
PDF
TXT
PDF
Assalamualaykum warahmatullahi wabarakatuu DOCX
Hace una calculadora en jeank DOCX
DOCX
PDF
PDF
DOCX
PDF
George McCaskey's handling of the Ray McDonald affair offers a lesson to the ... PDF
Aller plus loin avec Doctrine2 PDF
DOCX
PDF
PDF
Check out our photos of the Pixies' Metro show KEY
PDF
PDF
Як досвід компанії перетворився на фреймворк PPTX
PPTX
Когда возможностей Active record недостаточно Viewers also liked
PDF
PPTX
PDF
超理性使用者介面設計 - Data-driven A/B Testing PDF
PPT
PPT
PPT
Chinese Handwriting in Yahoo! F2E Summit 2011 PPT
PPTX
Yahoo! 釀的酒 - 淺嚐 Cocktails PDF
用JavaScript 實踐《軟體工程》的那些事兒! Handbook - From jQuery to YUI 3
- 1.
- 2.
About
Ying-Hsiang, Liao
@clayliao
Y! Search F2E
blog
2
- 3.
0. YUI 很Nice 的,這其中一定有什麼誤會
GETTING STARTED
3
- 4.
動態加載 : YUI().use('*',fn)
jQuery 1.7.2 YUI 3.5
$.foo.bar(); YUI().use('node',
function (Y) {
Y.foo.bar();
});
//Simple YUI
Y.foo.bar()
4
- 5.
金手指 : YUI3 動態加載
需要時自動判斷並載入相依檔案
節省頻寬並加速
開發者不需要自行維護
5
- 6.
- 7.
jQuery 1.7.2 YUI 3.5
$('#id') Y.one('#id')
$('.class') Y.all('.class')
$('div.class') Y.all('div.class')
$('parent child') Y.all('parent child')
$('parent > child') Y.all('parent > child')
7
- 8.
金手指 : API設計概念
Y.one()
( 隱含目標只有一個,回傳值為 Node 物件
Y.all()
隱含目標至少有一個以上,回傳值為
NodeList 物件
8
- 9.
jQuery 1.7.2 YUI 3.5
$(':text') Y.all('input[type=text]')
$(':submit') Y.all('input[type=submit]
$(':radio') ')
$(':last-child') Y.all('input[type=radio]'
… )
Y.all(':last-child')
…
9
- 10.
jQuery 1.7.2 YUI 3.5
$('div:even') Y.all('div').even()
$('div:odd') Y.all('div').odd()
$(':empty') Y.all(':empty')
10
- 11.
- 12.
jQuery 1.7.2 YUI 3.5
var foo = $ var foo =
('div.foo:first'); Y.one('div.foo');
foo.method(); if (foo) {
foo.method();
}
12
- 13.
jQuery 1.7.2 YUI 3.5
var foo = $ var foo =
('div.foo'); Y.all('div.foo');
if (foo.length) { if (foo.size()) {
//do something //do something
} }
13
- 14.
jQuery 1.7.2 YUI 3.5
.find('p.foo:first') .one('p.foo')
.find('p.foo') .all('p.foo')
14
- 15.
- 16.
jQuery 1.7.2 YUI 3.5
.html('foo') .setContent('foo')
.text('foo') .set('text', 'foo')
.val('foo') .set('value', 'foo')
16
- 17.
jQuery 1.7.2 YUI 3.5
.html() .get('innerHTML')
.text() .get('text')
.val() .get('value')
17
- 18.
金手指 : API設計概念
jQuery 1.7.2 YUI 3.5
無參數表示 get Getter/setter 設計
html()
.get('text')
有參數表示 set .set('text', 'foo')
html('foo')
18
- 19.
jQuery 1.7.2 YUI 3.5
.attr('foo') .getAttribute('foo')
.attr('foo', 'bar') .setAttribute('foo',
'bar')
19
- 20.
jQuery 1.7.2 YUI 3.5
.siblings() .siblings()
.siblings(selector) .siblings(selector)
.siblings(fn)
20
- 21.
jQuery 1.7.2 YUI 3.5
.next() .next()
.next(selector) .next(selector)
.next(fn)
21
- 22.
jQuery 1.7.2 YUI 3.5
.prev() .previous()
.prev(selector) .previous(selector)
.previous(fn)
22
- 23.
jQuery 1.7.2 YUI 3.5
.parent() .get('parentNode')
.children() .get('children')
.closest(selector) .ancestor(selector)
.ancestor(fn)
$.contains(node, .contains(descendant)
descendant)
23
- 24.
jQuery 1.7.2 YUI 3.5
parent.append('<div/>') parent.append('<div/>')
child.appendTo(parent) child.appendTo(parent)
24
- 25.
- 26.
- 27.
CSS class namemanipulation
jQuery 1.7.2 YUI 3.5
.addClass('foo') .addClass('foo')
.removeClass('foo') .removeClass('foo')
.toggleClass('foo') .toggleClass('foo')
.hasClass('foo') .hasClass('foo')
27
- 28.
Replace node's CSSclass 'foo' with 'bar'
jQuery 1.7.2 YUI 3.5
.removeClass('foo'). .replaceClass('foo',
addClass('bar') 'bar')
28
- 29.
Set single/multiple CSSproperty
jQuery 1.7.2 YUI 3.5
.css('display', .setStyle('display',
'block') 'block')
.css({ .setStyles({
height: 100, height: 100,
width: 100, width: 100,
display: 'block' display: 'block'
}) })
29
- 30.
Get the currentvalue for a CSS property
jQuery 1.7.2 YUI 3.5
.css('display') .getStyle('display')
30
- 31.
Height / width.Excludes padding and
borders
jQuery 1.7.2 YUI 3.5
.height() .getComputedStyle('height')
.width() .getComputedStyle('width')
31
- 32.
Height / width.Includes padding but not
border
jQuery 1.7.2 YUI 3.5
.innerHeight() .get('clientHeight')
.innerWidth() .get('clientWidth')
32
- 33.
Height / width.Includes padding and
border
jQuery 1.7.2 YUI 3.5
.outerHeight() .get('offsetHeight')
.outerWidth() .get('offsetWidth')
33
- 34.
Get/Set x,y coordinatesrelative to the
document
jQuery 1.7.2 YUI 3.5
.offset() .getXY()
// {left: 123, top: // [123, 456]
456, width: 789,
height: 1011}
.offset({ left: 123, .setXY(123, 456)
top: 456 })
34
- 35.
- 36.
jQuery 1.7.2 YUI 3.5
.click(fn) .on('click', fn)
.focus(fn) .on('focus', fn)
.blur(fn) .on('blur', fn)
.mouseout(fn) .on('mouseout', fn)
.mouseover(fn) .on('mouseover', fn)
36
- 37.
金手指 : API設計概念
jQuery 1.7.2 YUI 3.5
承襲原生 JavaScript 語法
JS: .onClick(fn)
YUI: .on('click', fn)
37
- 38.
jQuery 1.7.2 YUI 3.5
$ Y.one("#foo").simulate("c
('#foo').trigger('clic lick")
k');
38
- 39.
- 40.
jQuery 1.7.2 YUI 3.5
$ Y.all('.foo').array_metho
('.foo').array_method d(args)
(args)
40
- 41.
jQuery 1.7.2 YUI 3.5
$('.foo').each( Y.all('.foo').each(
function() { function() {
this.method(); this.method();
} }
); );
41
- 42.
- 43.
jQuery 1.7.2 YUI 3.5
$.ajax({ Y.io(url,{
url: url, data: data,
data: data, on: {success:
success: successFn successFn
}); }
});
43
- 44.
jQuery 1.7.2 YUI 3.5
$('#msg').load('/ajax/ Y.one('#msg').load('/ajax
test.html'); /test.html');
//No match api Y.one('#msg').load('/ajax
/test.html', '#foo');
動態取得資料後,
取代指定區塊
44
- 45.
jQuery 1.7.2 YUI 3.5
$.parseJSON( Y.JSON.parse( '{"name":"Y
'{"name":“jQuery"} UI3"}
) )
45
- 46.
7. 藍波丸 :原生 JavaScript 強化 !
LANGUAGE UTILITIES
46
- 47.
- 48.
Iterate through anarray/object
jQuery 1.7.2 YUI 3.5
$.each([1, 2, 3], Y.Array.each([1, 2, 3],
fn(index, value)) fn(value, index))
$.each({ key: Y.Object.each({ key:
value }, fn(key, value }, fn(key,
value)) value))
48
- 49.
jQuery 1.7.2 YUI 3.5
$.inArray(value, Y.Array.indexOf(value,
array) array)
49
- 50.
jQuery 1.7.2 YUI 3.5
$.isPlainObject(obj) Y.Lang.isObject(obj)
Y.Lang.isObject(obj,
true)
$.isEmptyObject(obj) Y.Object.isEmpty(obj)
50
- 51.
- 52.
- 53.
- 54.
- 55.