jQuery事件學習篇

資料來源

w3cschool

1. jQuery名稱沖突

解決方法

var $jquery = jQuery.noConflict();

2.ready()--文檔準備就緒

當DOM已經加載完成,并且頁面(包含圖像)已完全呈現,觸發ready事件

用法

1. $(document).ready(function() {

//do sth

});

2. $().ready(function() {});

3. $(function() {});

注意

ready只能用于document對象

ready與<body onload="">不應該一起使用

3. load

當指定元素及其子元素加載完成時,觸發load事件

$(selector).load(function() {})

4.事件綁定bind

4.1綁定單個事件

$(selector).bind(event-type,fn);

栗子

JS

var isClick = true;

$('.box1').bind('click',function() {

if(isClick) {

$('.box1').css('width','200px');

isClick =false;

}else{

$('.box1').css('width','100px');

isClick =true;

}

});

效果展示


單個事件綁定


4.2綁定多個事件

$(selector).bind({

event1: function() {},

event2: function() {}

....

})

栗子

JS

$('.box').bind({

mouseover:function() {

$('.box').css('background-color','#0f0');

},

mouseout:function() {

$('.box').css('background-color','#f00');

}

});

效果展示


多個事件的綁定


5.聚焦、失焦事件

5.1聚焦事件focus

當元素獲得焦點時觸發該事件;

$(selector).focus(function() {});

也可以不使用回調函數;

當通過鼠標點擊選中元素或通過 tab 鍵定位到元素時,該元素就會獲得焦點;

5.2失焦事件blur

當元素失去焦點時發生 blur 事件

$(selector).blur(fn);

也可以不使用回調函數;

栗子

JS

$('input:button').focus(function() {

$('input:button').css('background-color','aqua');

});

$('input:button').blur(function() {

$('input:button').css('background-color','aquamarine');

});

效果展示


失焦、聚焦事件


6.變化

6.1元素值發生改變--change

當元素的值發生改變時觸發change事件。

$(selector).change(function);

注意

該事件只適用于文本域 text field、text area、和 select 元素。

當用于 select 元素時,change 事件會在選擇某個選項時發生。當用于 text field 或 text area 時,該事件會在元素失去焦點時發生。

栗子

JS

$('input:text').change(function() {

$('input:text').css('background-color','#f00');

});

$('textarea').change(function() {

$('textarea').css('background-color','#0ff');

});

$('select').change(function() {

$(this).css('color','#00a0e6');

});

效果展示



change事件

7.鼠標事件

7.1鼠標單擊事件

當單擊元素時,觸發click事件;

$(selector).click(function() {});

當鼠標指針停留在元素上方,然后按下并松開鼠標左鍵時,就會發生一次 click;

7.2鼠標雙擊事件

當雙擊元素時,觸發dbclick事件;

$(selector).dblclick(function() {});

注意

避免鼠標單擊事件和鼠標雙擊事件作用于同一個元素上。

栗子

JS

$('.c').click(function() {

$(this).html('單擊事件');

});

$('.db').dblclick(function() {

$(this).html('鼠標雙擊事件');

});

效果展示


鼠標點擊事件

7.3鼠標滑入事件mouseover

當鼠標指針滑入元素內時,觸發該事件;

$(selector).mouseover(function() {});

注意

與 mouseenter 事件不同,不論鼠標指針穿過被選元素或其子元素,都會觸發 mouseover 事件。只有在鼠標指針穿過被選元素時,才會觸發 mouseenter 事件;

在有嵌套關系的元素上使用該事件,需要設置阻止事件冒泡

7.4鼠標滑出事件mouseover

當鼠標指針從元素上移開時,觸發mouseout 事件;

$(selector).mouseout(funciton() {});

注意

與 mouseleave 事件不同,不論鼠標指針離開被選元素還是任何子元素,都會觸發 mouseout 事件。只有在鼠標指針離開被選元素時,才會觸發 mouseleave 事件;

栗子

JS

$('.m').mouseover(function() {

$(this).css({'height':'300px','width':'300px'});

}).mouseout(function() {

$(this).css({'height':'200px','width':'200px'});

});

效果展示


鼠標滑入滑出事件

7.5鼠標移入事件mouseenter

當鼠標指針穿過元素時,會觸發mouseenter 事件

$(selector).mouseenter(function() {})

7.6鼠標移出事件 mouseleave

當鼠標指針離開元素時,會觸發mouseleave 事件。

$(selector).mouseleave(function() {});

栗子

JS

$('.e').mouseenter(function() {

$(this).animate({'width':'400px','background-color':'olive'});

}).mouseleave(function() {

$(this).animate({'width':'200px','background-color':'darkgoldenrod'});

});

展示效果


鼠標移入移出事件

7.7 鼠標指針移動事件mousemove

當鼠標指針在指定的元素中移動時,就會發生 mousemove 事件

$(selector).mousemove(function() {})

用戶把鼠標移動一個像素,就會發生一次 mousemove 事件。處理所有 mousemove 事件會耗費系統資源。請謹慎使用該事件。

栗子

JS

$('.move').mousedown(function(event) {

/*

* 鼠標初始位置

*/

var x = event.clientX-$('.move')[0].getBoundingClientRect().left;

var y = event.clientY-$('.move')[0].getBoundingClientRect().top;

$(document).mousemove(function(event) {

var l = event.clientX- x;

var t = event.clientY- y;

if(l <=0) {l =0;}

if(t <=0) { t =0;}

if(l >=$('.parent')[0].offsetWidth-$('.move')[0].offsetWidth) {

l =$('.parent')[0].offsetWidth-$('.move')[0].offsetWidth;

}

if( t >=$('.parent')[0].offsetHeight-$('.move')[0].offsetHeight) {

t =$('.parent')[0].offsetHeight-$('.move')[0].offsetHeight;

}

$('.move').css({

'left': l +'px',

'top': t +'px'

});

event.cancelBubble=true;

});

/* 鼠標彈起時 */

$(document).mouseup=function() {

// 釋放全局捕獲

if($('.move').releaseCapture) {

$('.move').releaseCapture();

}

$(document).mousemove=null;

$(document).mouseup=null;

};

/* IE8 取消默認行為-設置全局捕獲 */

console.log($('.move'));

if($('.move').setCapture) {

$('.move').setCapture();

}

return false;

});

實現效果


鼠標移動事件

7.8鼠標按鍵按下mousedown

當鼠標指針移動到元素上方,并按下鼠標按鍵時,會發生 mousedown 事件。

$(selector).mousedown(function() {})

7.9鼠標按鍵彈起mouseup

當在元素上放松鼠標按鈕時,會發生 mouseup 事件

$(selector).mouseup(funciton() {})

栗子

HTML

<div class="box"></div>

CSS

.box{width:300px;height:300px;margin:100px;background:indianred;transition:all 0.5s ease;}

.new{transform:rotate(45deg);}

JS

$(function() {

$('.box').mousedown(function(event) {

$('.box').addClass('new');

}).mouseup(function() {

$('.box').removeClass('new');

});

});

效果展示


鼠標按鍵事件

8.鍵盤事件

8.1按鍵按下事件keydown

完整的 key press 過程分為兩個部分:1. 按鍵被按下;2. 按鍵被松開。

當按鈕被按下時,發生 keydown 事件。

如果在文檔元素上進行設置,則無論元素是否獲得焦點,該事件都會發生。

提示:請使用.which 屬性來確定按下了哪個按鍵

$(selector).keydown()

8.2按鍵彈起事件keyup

完整的 key press 過程分為兩個部分,按鍵被按下,然后按鍵被松開并復位。

當按鈕被松開時,發生 keyup 事件。它發生在當前獲得焦點的元素上。

提示:請使用.which 屬性來確定按下了哪個按鍵

$(selector).keyup()

8.3按鍵事件keypress

keypress 事件與 keydown 事件類似。當按鈕被按下時,會發生該事件。它發生在當前獲得焦點的元素上。

不過,與 keydown 事件不同,每插入一個字符,就會發生 keypress 事件。

如果在文檔元素上進行設置,則無論元素是否獲得焦點,該事件都會發生。

$(selector).keypress()


瀏覽器差異:Internet Explorer 使用 event.keyCode 取回被按下的字符,而 Netscape/Firefox/Opera 使用 event.which

9.事件對象event

event.target:觸發某個事件的DOM元素

event.type: 事件的類型

event.which: 顯示按了哪個鍵

event.preventDefault(); 阻止默認事件

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 228,983評論 6 537
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 98,772評論 3 422
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 176,947評論 0 381
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,201評論 1 315
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,960評論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,350評論 1 324
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,406評論 3 444
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,549評論 0 289
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,104評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 40,914評論 3 356
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,089評論 1 371
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,647評論 5 362
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,340評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,753評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,007評論 1 289
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,834評論 3 395
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,106評論 2 375

推薦閱讀更多精彩內容

  • 總結: 鼠標事件 1.click與dbclick事件$ele.click()$ele.click(handler(...
    阿r阿r閱讀 1,626評論 2 10
  • (續jQuery基礎(1)) 第5章 DOM節點的復制與替換 (1)DOM拷貝clone() 克隆節點是DOM的常...
    凜0_0閱讀 1,356評論 0 8
  • 鼠標事件 .click() 單擊 .dbclick()雙擊 .click() 不帶任何參數,一般用來指定觸發一...
    學開船不會開船閱讀 474評論 0 0
  • 敏:毛哥畢業前讓我幫他寄快遞 給了我一個空紙箱讓我打包 我好奇的問他:“這是寄給誰的” 他說:“我喜歡很久的一個女...
    榆河閱讀 477評論 2 2
  • 三窮三富過到老,十年興敗誰知曉,誰人背后無人說,誰人背后不說人! 什么是真,什么是假,喜我者,我惜之,嫌我...
    人生柒年閱讀 193評論 0 1