1.事件處理
1.1.事件綁訂
bind(type,fn);
例子:
. 代碼如下:
$(function(){
//正式的寫法
$('#d1').bind('click',function(){
$(this).css('font-size','80px');
});
//簡寫形式
$('#d1').click(function(){
$(this).css('font-size','80px');
});
});
1.2.綁訂方式的簡寫形式
. 代碼如下:
click(function(){
});
1.3.合成事件
hover(enter,leave) : 模擬光標懸停事件
toggle(fn1,fn2...) : 模擬鼠標連續單擊事件
例子1:
. 代碼如下:
$(function(){
//分開的事件
$('.s1').mouseenter(function(){
$(this).addClass('s2');
});
$('.s1').mouseleave(function(){
$(this).removeClass('s2');
});
//合成事件
$('.s1').hover(function(){
$(this).addClass('s2');
},function(){
$(this).removeClass('s2');
});
});
例子2:
. 代碼如下:
$(function(){
$('#a1').toggle(function(){
$('#d1').show('slow');
},function(){
$('#d1').hide('slow');
});
});
1.4.事件冒泡//子節點產生的事件會依次向上拋給父節點
1.4.1.獲得事件對象//只需要給事件處理函數添加一個任意變量即可,比如e
//e不是真正的事件對象,而是對底層的事件對象的一個封裝
click(function(e){
});
例子1:
. 代碼如下:
$(function(){
$('a').click(function(e){
//e:jQuery對象,裡面包含了一個事件對象。
//target屬性返回的是一個dom對象,即事件源。
var srcObject = e.target;
alert(srcObject.innerHTML);
});
});
1.4.2.停止冒泡
event.stopPropagation();
例子2:
. 代碼如下:
$(function(){
$('a').click(function(e){
alert('你點擊了一個鏈接');
//停止冒泡
e.stopPropagation();
});
$('#d1').click(function(e){
alert('你點擊了一個div');
});
});
1.4.3.停止默認行為
event.preventDefault();//比如表單提交
例子3:
. 代碼如下:
$(function(){
$('a').click(function(e){
var flag = confirm('是否確定刪除?');
if(!flag){
//停止默認行為
e.preventDefault();
}
});
});
1.5.事件對象的屬性
event.type : 事件類型
event.target : 返回事件源(是dom對象!!!)
event.pageX/pageY : 點擊的點的坐標
例子4:
. 代碼如下:
$(function(){
$('a').click(function(e){
alert(e.type); //獲得事件類型
alert(e.pageX + ' ' +e.pageY);
});
});
1.6.模擬操作//如.$('xxx').mouseenter();
$('xxx').trigger('被模擬的事件');//也可以簡化
例子5:
. 代碼如下:
$(function(){
$('#b1').click(function(){
//讓username對應的文本輸入框獲得焦點
$('#username').trigger('focus');
//另外,也可以簡化
$('#username').focus();
});
});
2.動畫
2.1.show() / hide()//顯示 / 隱藏
//作用:通過同時改變元素的寬度和高度來實現顯示和隱藏
用法:
show(速度,[回調函數]);
速度可以使用"normal","fast","slow",也可以使用毫秒數
回調函數會在整個動畫執行完畢之後執行
2.2.slideUp() / slideDown()
//作用:通過改變元素的高度來實現顯示和隱藏
用法同上。
例子:
. 代碼如下:
$(function(){
$('#a1').toggle(function(){
$('#d1').show('slow');
$('#d1').slideDown('slow');
},function(){
$('#d1').hide('slow');
$('#d1').slideUp('slow');
});
});
2.3.fadeIn() / fadeOut()//淡入,淡出
//作用:通過改變元素的不透明度來實現顯示和隱藏
用法同上。
例子:
. 代碼如下:
$(function(){
$('#b1').toggle(function(){
$('#d1').fadeOut('slow');
},function(){
$('#d1').fadeIn('slow');
});
});
2.4.自定義動畫
animate(params,speed,[callback])
params : //是一個javascript對象,描述的是動畫執行結束時的樣式。
speed : //速度,單位是毫秒。
callback : //回調函數,會在動畫執行完畢之後執行。
例子:
. 代碼如下:
$(function(){
$('#d1').click(function(){
//動畫隊列
$(this).animate({'left':'400px'},3000);
$(this).animate({'top':'250'},2000).fadeOut('slow');
});
});
3.類數組的操作
//類數組:指的是jQuery選擇器會將查找到的所有的dom對象封裝成一個jQuery對象,
//將這些dom對象稱為類數組。
3.1.length屬性 : //獲得jQuery對象包含的dom對象的個數。
3.2.each(fun(i)) : //循環遍歷每一個元素,this代表被迭代的dom對象,
//$(this)代表被迭代的jquery對象。
3.3.eq(index) : //返回index+1位置處的jquery對象
3.4.index(obj) : //返回下標,其中obj可以是dom對象或者jquery對象。
3.5.get() : //返回dom對象組成的數組
3.6.get(index) : //返回index+1個dom對象。
例子:
. 代碼如下:
$(function(){
$('#b1').click(function(){
//var $obj = $('ul li');
alert($obj.length);
$obj.each(function(i){
//i:表示正在被訪問的那個dom對象的下標,
//下標從0開始。
//this:表示正在被訪問的那個dom對象
if(i==0){
$(this).css('font-size','60px');
}else if(i==1){
$(this).css('font-style','italic');
}else{
$(this).css('color','red');
}
});
//var $obj = $('ul li');
var $o = $obj.eq(1);
//$o.css('font-size','60px');
var index = $obj.index($o);
//alert(index);
//var $obj = $('ul li');
var arr = $obj.get();
//alert(arr[1].innerHTML);
var $obj = $('ul li');
var obj = $obj.get(1);
alert(obj.innerHTML);
});
});