jQuery事件

使用jQ綁定事件
bind()方法和unbind() 在3.0的時候已被移除嫌佑,盡量減少使用霎槐』陆梗或者不用须妻。
通過DOM添加事件不會被覆蓋:
通過DOM的addEventListener添加事件可以多次添加埂伦,不會被覆蓋

 var div = document.getElementById('div');
 div.addEventListener('click',function(){
 alert('一次')
 });
 div.addEventListener('click',function(){
 alert('二次')
 });

綁定與移除事件:
on()綁定事件煞额;off()移除事件:one()綁定方法只能觸發(fā)一次;on綁定的事件不受one的影響沾谜;
添加事件:.on()方法 事件事件函數(shù)可以多次觸發(fā).

 $('div').on('click',function(){
 alert('加波關(guān)注啊');
 });
 //事件的移除膊毁。 
 $('div').off('click');
 //one();通過one綁定的事件只能觸發(fā)一次(one綁定的函數(shù)只能觸發(fā)一次);添加一次性事件
 $('button').one('click',function(){
 alert('你猜');
 });
 //on綁定的事件函數(shù)不受one事件綁定的影響基跑。
 $('button').on('click',function(){
 alert('我出來了')
 });```

on可以同時綁定多個事件:

在匿名函數(shù)中婚温,填寫一個參數(shù)名,這個參數(shù)名就是事件對象event媳否;
// 同時綁定多個事件
$('.div1').on('mouseover dblclick', function (event) { //同時給類名為div1的對象綁定了mouseover和dblclick事件
console.log(event.type);
});```
off()移除事件:

可以同時移除所有的事件栅螟,也可以移除指定事件如果是多個荆秦,中間用逗號隔開;
 // 移除事件
 // $('.div1').off(); // 移除所有事件
 $('.div1').off('dblclick mouseover'); // off() 函數(shù)可以有參數(shù)力图,移除指定事件步绸,如果是多個,中間用空格隔開

復(fù)合事件:
.hover()方法:


 *復(fù)合事件:搪哪。hover()事件
 * mouseenter 和 mouseover:over是鼠標(biāo)滑過標(biāo)簽觸發(fā)的時間靡努。enter是鼠標(biāo)移入標(biāo)簽就會觸發(fā)的時間。
 * 
 * */
 $('div').hover(function(){
 $(this).css("background","red");
 },
 function(){
 $(this).css("background","blue");
 });
*/```
事件的獲认邸(事件對象):

事件類型:event.type惑朦;
```/*
*type:獲取當(dāng)前觸發(fā)的事件類型。
 */
$('div').mousemove(function(event){
 console.log(event.type);
 });

例:查看事件的類型;

 $('.div1').on('mouseover mouseout', function (event) {
 if (event.type == 'mouseover') {
 $(this).css('background-color', 'black');
 } else {
 $(this).css('background-color', 'red');
 }
 });```
target 與currentTarget:

target:觸發(fā)事件的元素;currentTarget:響應(yīng)事件的元素:
/*
*target:當(dāng)前點擊的標(biāo)簽元素 若专; 事件的執(zhí)行铺浇。

  • currentTarget:是保存的是事件綁定的對象辙浑。(相應(yīng)的事件對象)事件的響應(yīng)者
  • */
    $('body').click(function(event){
    //console.log(event.target); 當(dāng)點擊的是div、的時候,打印的是div 當(dāng)前點擊的是誰 target就代表誰。
    console.log(event.currentTarget); 事件有誰觸發(fā) currentTarget就代表誰
    });```
    事件的坐標(biāo):
    pageX吩蔑;pageY;clientX填抬;clientY烛芬;offsetX;offsetY飒责;screenX赘娄;screenY;
 $('body').click(function(event){
 console.log(event.pageX); 
 *pageX宏蛉, pageY:包括具有滾動條的寬度和高度;(頁面);
 console.log(event.pageY);
 console.log(event.clientX);
    *clientX,clientY: 可視區(qū)域的寬度和高度;
 console.log(event.clientY);
 console.log(event.offsetX);
    *offsetX遣臼,offsetY:不包含margin;(說白了就是margin的問題);
 console.log(event.offsetY);
 console.log(event.screenX);
    *screenX;screenY:相對于屏幕的左上角點;
 console.log(event.screenY);
 });

取消默認(rèn)事件: event.preventDefault()拾并;

<script type="text/javascript">
 //取消標(biāo)簽的默認(rèn)行為(事件)
 //event.preventDefault();阻止默認(rèn)行為揍堰。
 $(document).ready(function(){
 $('a').click(function(event){
 event.preventDefault(); //阻止超鏈接a 
 })```
事件冒泡:event.stopPropagation();

<script type="text/javascript">
$(document).ready(function(){
//事件冒泡 從里往外傳。
/*觸發(fā)子標(biāo)簽的某一個事件嗅义,js引擎會把這個事件傳遞到父級標(biāo)簽个榕,一直傳遞到document,如果在這個傳遞鏈中也有這個事件芥喇,該事件也會被觸發(fā)。利用事件冒泡我們可以實現(xiàn) 事件委托及代理

  • 阻止事件的冒泡event.stopPropagartion();阻止在傳遞鏈中觸發(fā)事件凰萨。
  • */
    //觸發(fā)子標(biāo)簽的時候依次觸發(fā)到父標(biāo)簽
    $('#div1').click(function(){
    alert("1");
    });
    $('#div2').click(function(){
    alert("2");
    });
    //阻止事件的冒泡
    $('#div3').click(function(event){
    alert("3");
    event.stopPropagation();
    });
    });```
    模擬事件:trigger继控;triggerHandle械馆;不通過用戶觸發(fā)事件,自動會觸發(fā)事件武通,一般用不到霹崎。可以利用定時器去彈冶忱。用戶的體驗會更好尾菇。
<script type="text/javascript">
 $(document).ready(function(){
 /*
 *事件模擬:不通過用戶觸發(fā)事件,但事件依然可以觸發(fā)囚枪。
 * */
 //鏈?zhǔn)秸Z法:(.)把一組操作用點語法來操作
 $('#div').click(function(){
 alert("加波關(guān)注芭晌堋?")
 }).click();
 //$('#div').trigger('click');
 //$('#div').triggerHandler('click');
 //trigger,triggerHandler 都可以模擬事件的執(zhí)行链沼,triggerHandler不會觸發(fā)標(biāo)簽的默認(rèn)事件默赂。
 //trigger可以執(zhí)行默認(rèn)的事件的實行。triggerHandler 不執(zhí)行默認(rèn)事件的執(zhí)行括勺。
 $('form').trigger('submit');
 $('form').triggerHandler('submit');
 });```
命名空間; 給事件添加一個新的名字缆八,使用點(.)分割。這樣在移除事件的時候可以通過新添加 的名字進(jìn)行移除疾捍;

$(document).ready(function(){
//命名空間:在事件名后在添加新的名字奈辰,用點分割。這樣通過后綴名字把相同事件不同方法區(qū)分開乱豆。方便對事件的管理
$('button').on('click.tel',function(){
alert("加油奖恰?")
})
$('button').on('click',function(){
$('button').css('background',"red");
});
//解綁事件時,就可以通過命名空間添加的新名字進(jìn)行解綁咙鞍。不影響其他相同的事件
$('button').off('.tel');
})
</script>```
事件委托:本該自身的事件添加在父元素的身上(只能添加在父子元素上房官。)(利用的是事件冒泡);

 // 使用JQ實現(xiàn)代理設(shè)計模式
 $('ul').on('click', 'li', function () {
 // this == li
 $('<li></li>').html(this.innerHTML).appendTo('ul');
 console.log(event.target); 
 console续滋。log(event.currentTarget)翰守; 指的都是li
 });
 // 代碼是把事件綁定到ul身上的,但是是li委托的疲酌,實際觸發(fā)事件的是li對象蜡峰,所有函數(shù)內(nèi)部的this是li對象
 // ul作為li的代理,幫li做事
 // li把事件委托給ul朗恳,讓ul做事```
自定義事件:
自定義一個事件湿颅,并給事件添加一個函數(shù) ,最后使用element.trigger();來調(diào)用粥诫;

<script type="text/javascript">
//自定義事件只能通過trigger來調(diào)用
$('div').on('hhaha',function(){
alert("努力學(xué)習(xí)吧")
});
$('div').trigger('hhaha');
</script>

窗口事件:

調(diào)整窗口大小事件:
<script type="text/javascript">
$(document).ready(function(){
//窗口大小改變時觸發(fā)的事件
$(window).resize(function(){
console.log("窗口改變時油航,會打印出來");
});
//窗口滾動事件
$(document).scroll(function(){
console.log("窗口滾動時發(fā)生的觸發(fā)的事件");
});
});
</script>```

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市怀浆,隨后出現(xiàn)的幾起案子谊囚,更是在濱河造成了極大的恐慌怕享,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,544評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件镰踏,死亡現(xiàn)場離奇詭異函筋,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)奠伪,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,430評論 3 392
  • 文/潘曉璐 我一進(jìn)店門跌帐,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人绊率,你說我怎么就攤上這事谨敛。” “怎么了即舌?”我有些...
    開封第一講書人閱讀 162,764評論 0 353
  • 文/不壞的土叔 我叫張陵佣盒,是天一觀的道長。 經(jīng)常有香客問我顽聂,道長肥惭,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,193評論 1 292
  • 正文 為了忘掉前任紊搪,我火速辦了婚禮蜜葱,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘耀石。我一直安慰自己牵囤,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,216評論 6 388
  • 文/花漫 我一把揭開白布滞伟。 她就那樣靜靜地躺著揭鳞,像睡著了一般。 火紅的嫁衣襯著肌膚如雪梆奈。 梳的紋絲不亂的頭發(fā)上野崇,一...
    開封第一講書人閱讀 51,182評論 1 299
  • 那天,我揣著相機(jī)與錄音亩钟,去河邊找鬼乓梨。 笑死,一個胖子當(dāng)著我的面吹牛清酥,可吹牛的內(nèi)容都是我干的扶镀。 我是一名探鬼主播,決...
    沈念sama閱讀 40,063評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼焰轻,長吁一口氣:“原來是場噩夢啊……” “哼臭觉!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,917評論 0 274
  • 序言:老撾萬榮一對情侶失蹤蝠筑,失蹤者是張志新(化名)和其女友劉穎忆肾,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體菱肖,經(jīng)...
    沈念sama閱讀 45,329評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,543評論 2 332
  • 正文 我和宋清朗相戀三年旭从,在試婚紗的時候發(fā)現(xiàn)自己被綠了稳强。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,722評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡和悦,死狀恐怖退疫,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情鸽素,我是刑警寧澤褒繁,帶...
    沈念sama閱讀 35,425評論 5 343
  • 正文 年R本政府宣布,位于F島的核電站馍忽,受9級特大地震影響棒坏,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜遭笋,卻給世界環(huán)境...
    茶點故事閱讀 41,019評論 3 326
  • 文/蒙蒙 一坝冕、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧瓦呼,春花似錦喂窟、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,671評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至质和,卻和暖如春稳摄,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背侦另。 一陣腳步聲響...
    開封第一講書人閱讀 32,825評論 1 269
  • 我被黑心中介騙來泰國打工秩命, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人褒傅。 一個月前我還...
    沈念sama閱讀 47,729評論 2 368
  • 正文 我出身青樓弃锐,卻偏偏與公主長得像,于是被迫代替她去往敵國和親殿托。 傳聞我的和親對象是個殘疾皇子霹菊,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,614評論 2 353

推薦閱讀更多精彩內(nèi)容

  • 總結(jié): 鼠標(biāo)事件 1.click與dbclick事件$ele.click()$ele.click(handler(...
    阿r阿r閱讀 1,605評論 2 10
  • 本文章是老馬jQuery視頻的講義和上課的代碼。具體觀看視頻地址:https://chuanke.baidu.co...
    IT老馬閱讀 2,576評論 3 14
  • 鼠標(biāo)事件 .click() 單擊 .dbclick()雙擊 .click() 不帶任何參數(shù),一般用來指定觸發(fā)一...
    學(xué)開船不會開船閱讀 468評論 0 0
  • (續(xù)jQuery基礎(chǔ)(1)) 第5章 DOM節(jié)點的復(fù)制與替換 (1)DOM拷貝clone() 克隆節(jié)點是DOM的常...
    凜0_0閱讀 1,338評論 0 8
  • 生病的時候應(yīng)該干什么? 去吃好吃的旋廷! 生氣的時候應(yīng)該干什么鸠按? 去吃好吃的! 傷心難過的時候應(yīng)該干什么饶碘? 去吃好吃的...
    混混小花閱讀 127評論 0 0