Baru: Fitur baru ditambahkan ke dalam perpustakaan JQuery
Deprecated/Usang: Fitur sudah usang, dan akan disingkirkan suatu saat nanti. Alasan sebuah fitur/API menjadi usang biasanya adalah karena beberapa fitur baru yang ditambahkan memiliki kemampuan yang lebih baik dibandingkan dengan fitur yang lama sehingga disarankan untuk beralih ke metode yang baru dan melupakan metode yang lama. Selain itu, perbaikan struktur perpustakaan juga menjadi salah satu penyebab.
Disingkirkan: Fitur benar-benar disingkirkan dari perpustakaan. Anda sudah tidak bisa lagi memakai fitur-fitur yang sudah disingkirkan jika Anda menggunakan JQuery pada versi tersebut.
Versi 1.0
Daftar API untuk JQuery versi 1.0:
.add()
.addClass()
.after()
.ajaxComplete()
.ajaxError()
.ajaxSend()
.ajaxStart()
.ajaxStop()
.ajaxSuccess()
.animate()
.append()
.appendTo()
.attr()
.before()
.bind()
.blur()
.change()
.children()
.click()
.clone()
.css()
.dblclick()
.each()
.empty()
.end()
.error()
event.preventDefault()
event.stopPropagation()
event.target
event.type
.fadeIn()
.fadeOut()
.fadeTo()
.filter()
.find()
.focus()
.get()
.height()
.hide()
.hover()
.html()
.index()
.insertAfter()
.insertBefore()
.is()
jQuery.ajax()
jQuery.boxModel
jQuery.browser
jQuery.each()
jQuery.extend()
jQuery.get()
jQuery.getJSON()
jQuery.getScript()
jQuery.grep()
jQuery.map()
jQuery.merge()
jQuery.noConflict()
jQuery.post()
jQuery.trim()
.keydown()
.keypress()
.keyup()
.length
.load()
(AJAX).load()
(Event).mousedown()
.mouseenter()
.mouseleave()
.mousemove()
.mouseout()
.mouseover()
.mouseup()
.next()
.not()
.parent()
.parents()
.prepend()
.prependTo()
.prev()
.ready()
.pushStack()
.remove()
.removeAttr()
.removeClass()
.resize()
.scroll()
.select()
.serialize()
.show()
.siblings()
.size()
.slideDown()
.slideToggle()
.slideUp()
.submit()
.text()
.toggle()
(Efek).toggle()
(Event).toggleClass()
.trigger()
.unbind()
.unload()
.val()
.width()
.wrap()
Daftar API untuk selektor:
*
All Selector[name|="value"]
Attribute Contains Prefix Selector[name*="value"]
Attribute Contains Selector[name~="value"]
Attribute Contains Word Selector[name$="value"]
Attribute Ends With Selector[name="value"]
Attribute Equals Selector[name!="value"]
Attribute Not Equal Selector[name^="value"]
Attribute Starts With Selector:button
:checkbox
:checked
parent > child
Child Selector.class
Class Selectorancestor descendant
Descendant Selector:disabled
tag
Element Selector:empty
:enabled
:eq()
:even
:file
:first
:gt()
[attribute]
Has Attribute Selector:hidden
#id
ID Selector:image
:input
:last
:lt()
[name="value"][name2="value2"]
Multiple Attribute Selectorselector1, selector2, selectorN
Multiple Selectorprev + next
Next Adjacent Selectorprev ~ siblings
Next Siblings Selector:not()
:odd
:parent
:password
:radio
:reset
:selected
:submit
:text
:visible
Versi 1.0.4
Baru:
event.metaKey
event.pageX
event.pageY
jQuery.globalEval()
Versi 1.1
Baru:
event.data
jQuery.ajaxSetup()
.one()
Memperbaharui .attr()
, dari sebelumnya yang hanya berfungsi untuk mendapatkan nilai atribut elemen menjadi berfungsi untuk mendapatkan atribut dan juga mengeset atribut dalam berbagai cara seperti ini:
// Konsep awal
var src = $('img').attr('src');
// Mengeset nilai atribut
$('img').attr('src', '/path/to/image.jpg');
// Mengeset beberapa atribut sekaligus
$('img').attr({
alt: 'My profile photo',
src: '/path/to/image.jpg'
});
// Concat/menyisipkan nilai atribut baru tanpa menghilangkan nilai atribut awal
$('img').attr('id', function(i, value) {
return value + '-main';
});
Versi 1.1.2
Baru:
.eq()
Versi 1.1.3
Baru:
jQuery.browser
⇒jQuery.browser.version
event.which
jQuery.unique()
Versi 1.1.4
Baru:
event.relatedTarget
jQuery.isXMLDoc()
.slice()
:contains()
:first-child
:last-child
:has()
:nth-child()
:only-child
Versi 1.2
Baru:
.andSelf()
.contents()
.dequeue()
.hasClass()
.map()
.nextAll()
.offset()
.position()
.prevAll()
.queue()
.replaceAll()
.replaceWith()
.serializeArray()
.stop()
.triggerHandler()
.wrapAll()
.wrapInner()
:animated
:header
jQuery.inArray()
jQuery.isFunction()
jQuery.makeArray()
jQuery.param()
Versi 1.2.3
Baru:
.data()
.removeData()
jQuery.data()
jQuery.removeData()
Versi 1.2.6
Baru:
event.timeStamp
.innerHeight()
.innerWidth()
.outerHeight()
.outerWidth()
.scrollLeft()
.scrollTop()
Versi 1.3
Baru:
.closest()
.context
.die()
event.currentTarget
event.isDefaultPrevented()
event.isImmediatePropagationStopped()
event.isPropagationStopped()
event.result
event.stopImmediatePropagation()
jQuery.dequeue()
jQuery.fx.off
jQuery.isArray()
jQuery.queue()
jQuery.support
.live()
.pushStack()
.toggleClass()
Menerapkan .toggle()
tanpa parameter durasi dan/atau callback akan menghasilkan sikap tampil dan menghilang, tanpa efek:
// Dasar
$('div').click(function() {
$(this).toggle(600);
});
// Penerapan seperti ini bisa dilakukan di JQuery 1.3
$('div').click(function() {
$(this).toggle(); // Lebih baik dibandingkan dengan `$(this).toggle(0)`
});
Deprecated/Usang:
jQuery.boxModel
jQuery.browser
Versi 1.4
Baru:
.clearQueue()
.delay()
.detach()
.first()
.focusin()
.focusout()
.has()
jQuery()
(pembaharuan kecil)jQuery.contains()
jQuery.isEmptyObject()
jQuery.isPlainObject()
jQuery.noop()
jQuery.proxy()
.last()
.nextUntil()
.not()
.parentsUntil()
.prevUntil()
.toArray()
.unwrap()
Pembaharuan .addClass()
dan .removeClass()
, yang kini bisa menerima fungsi anonim untuk keperluan bypass/jalan pintas seperti ini:
// KASUS: Menambahkan kelas dengan akhiran berupa indeks elemen
// Cara panjang: Menggabungkan `.each()` dengan `.addClass()`
$('ul li').each(function(index) {
$(this).addClass('item-' + index);
});
// Jalan pintas dengan fungsi anonim
$('ul li').addClass(function(index) {
return 'item-' + index;
});
// Contoh untuk `.removeClass()`
$('ul li').removeClass(function(index) {
return $(this).prev().attr('class')
});
Pembaharuan .before()
, .after()
, .css()
, .filter()
, .html()
, .text()
, dan beberapa fungsi yang sudah ada yang kini bisa menerima fungsi anonim untuk keperluan jalan pintas. Selengkapnya baca di dokumentasi. Berikut ini adalah beberapa contoh:
// `.before()`
$('p').before(function(index) {
return '<div class="new-class-' + index + '"></div>';
});
// `.after()`
$('p').after(function(index) {
return '<div class="new-class-' + index + '"></div>';
});
// `.css()`
$('div').css("border", function(i) {
return (i + 1) + 'px solid black';
});
$('div').css({
"border": function(index) {
return (index + 1) + 'px solid black'
},
"background-color": function(index) {
return '#' + (index < 7 ? index : "a") + '00'
}
});
// `.filter()`
$('li').filter(function() {
return $('strong', this).length == 1;
}).css('background-color', 'red');
// dst...
Pembaharuan .offset()
, yang kini bisa menerima argumen koordinat untuk mengeset posisi elemen. Sebelumnya hanya berfungsi untuk mendapatkan posisi elemen dari dokumen:
// Sebelum 1.4
var top = $('div').offset().top;
var left = $('div').offset().left;
// 1.4
$('div').offset({
top: 30,
left: 200
});
Versi 1.4.1
Baru:
jQuery.error()
jQuery.parseJSON()
Dan beberapa pembaharuan kecil.
Versi 1.4.2
Baru:
.delegate()
.undelegate()
Versi 1.4.3
Baru:
event.namespace
jQuery.cssHooks
jQuery.fx.interval
jQuery.isWindow()
jQuery.now()
jQuery.type()
Memungkinkan menerapkan easing pada .show()
, .hide()
, .toggle()
, .slideDown()
, .slideUp()
, .slideToggle()
, .fadeIn()
, .fadeOut()
dan .fadeTo()
// Sebelum 1.4.3
$('div').slideDown(400, function() {
alert("Complete!");
});
// 1.4.3
$('div').slideDown(400, "swing", function() {
alert("Complete!");
});
Versi 1.4.4
Baru:
.fadeToggle()
Versi 1.5
deferred.done()
deferred.fail()
deferred.isRejected()
deferred.isResolved()
deferred.promise()
deferred.reject()
deferred.rejectWith()
deferred.resolve()
deferred.resolveWith()
deferred.then()
jQuery.ajaxPrefilter()
jQuery.ajaxTransport()
jQuery.Deferred()
jQuery.hasData()
jQuery.parseXML()
jQuery.sub()
jQuery.when()
Versi 1.5.1
Pembaharuan jQuery.ajax()
dan jQuery.support
Versi 1.6
Baru:
deferred.always()
deferred.pipe()
jQuery.holdReady()
jQuery.map()
.promise()
.prop()
.removeProp()
:focus
Pembaharuan .is()
yang kini bisa menerima fungsi anonim untuk melakukan pengecekan yang lebih kompleks dibandingkan dengan pengecekan sebelumnya yang hanya berdasarkan selektor:
// Sebelum 1.6
if ($('#foo').is('input')) {
$('#foo').val("");
} else {
$('#foo').html("");
}
// 1.6
var fooHasChildren = $('#foo').is(function() {
return $(this).children().length;
});
if (fooHasChildren) {
$('#foo').children().addClass('item');
} else {
$('#foo').addClass('empty');
}
Versi 1.7
Baru:
callbacks.add()
callbacks.disable()
callbacks.disabled()
callbacks.empty()
callbacks.fire()
callbacks.fired()
callbacks.fireWith()
callbacks.has()
callbacks.lock()
callbacks.locked()
callbacks.remove()
deferred.notify()
deferred.notifyWith()
deferred.progress()
deferred.state()
event.delegateTarget
jQuery.Callbacks()
jQuery.isNumeric()
.off()
.on()
Pembaharuan .removeAttr()
, yang kini bisa menghapus beberapa atribut sekaligus dalam satu kali eksekusi dengan cara menuliskan beberapa nama atribut terpisah oleh spasi:
// Sebelum 1.7
$('img').removeAttr('title').removeAttr('src').removeAttr('alt');
// 1.7
$('img').removeAttr('title src alt');
Deprecated/Usang:
deferred.isRejected()
digantikan olehdeferred.state()
deferred.isResolved()
digantikan olehdeferred.state()
.die()
digantikan oleh.off()
jQuery.sub()
.live()
digantikan oleh konteks yang lebih kecil untuk performa yang lebih baik, dengan JQuery.on()
.selector
// Usang
$('a').live("click", function() {
alert('OK!');
});
// Baru
$(document.body).on("click", "a", function() {
alert('OK!');
});
// Disarankan, jika ada induk statis yang lebih dekat, gunakan induk itu sebagai konteks
// Mirip dengan `$('#container').delegate("a", "click", function() {})`
$('#container').on("click", "a", function() {
alert('OK!');
});
Versi 1.8
Baru:
.addBack()
jQuery.parseHTML()
Pembaharuan selektor :eq()
yag kini bisa menyeleksi urutan elemen melalui alur mundur dengan menuliskan nilai berupa angka negatif.
Deprecated/Usang:
.andSelf()
digantikan oleh.addBack()
deferred.pipe()
.error()
jQuery.error()
.load()
(Event).size()
digantikan oleh kembarannya.length
.toggle()
(Event).unload()
Versi 1.9
Baru:
.finish()
:first-of-type
:lang
:last-of-type
:nth-last-child()
:nth-last-of-type()
:nth-of-type()
:only-of-type
:root
:target
Pembaharuan untuk .css()
, yang sebelumnya hanya bisa mendapatkan satu nilai properti saja setiap kali eksekusi, sekarang kita bisa menggunakan array untuk mengelompokkan properti-properti CSS yang ingin didapatkan, sedangkan hasilnya nanti akan berubah menjadi objek:
// Sebelum 1.9
var width = $('div').css('width');
var height = $('div').css('height');
var paddTop = $('div').css('padding-top');
// 1.9
var props = $('div').css(["width", "height", "padding-top"]); // Hasil => `props = {width:N,height:N,padding-top:N}`
var width = props.width;
var height = props.height;
var paddTop = props["padding-top"];
Disingkirkan:
.toggle()
(Event)jQuery.browser()
.live()
.die()
jQuery.sub()
Referensi: API JQuery
0 komentar:
Posting Komentar