亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

jQuery事件

系統 2101 0

1. 在頁面加載后執行任務

??? 1.1 代碼執行的時機選擇

????????? $('document').ready() 指頁面的DOM加載完成后執行、并不意味著關聯的文件都下載完畢

????????? window.onload 指頁面上所有元素都加載完成后執行

??? 1.2 基于一個頁面執行多個腳本

????????? $('document').ready() 可以向內部的行為隊列中添加函數、并按照添加的次序執行

????1.3 縮短代碼的簡寫方式:$()函數

????????? 1) 當不傳遞參數給它時、默認傳遞了document參數

?????????????? 示例:

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

?????????????????? //todo;

??????????????? });

??????????????? 簡寫成

??????????????? $().ready(function(){

?????????????????? //todo;

??????????????? });

?????????? 2) 當傳遞另一個函數作為參數時、$()會隱含對.ready()調用一次

?????????????? 示例:

?????????????? 上面的代碼可簡寫成:

???????????????$(function(){

???????????????? //todo;

???????????????});

2. 簡單的事件:jQuery將DOM元素與事件綁定分離

??? 2.1?bind('事件',函數); 為元素事件綁定函數。

????????? $('#switch-large').bind('click', function(){

???????????? //todo;

????????? });?

??? 2.2 $(this):this引用的是DOM元素而不是jQuery對象。

?????????????????????? 該方法表示為this引用的相應元素創建一個jQuery對象。

??? 2.3 removeClass('參數'):當參數省略時表示移除所有的類。

??? 2.4 簡寫的事件:

????????? 示例:

????????? .bind('click',function(){

??????????? //todo

????????? })

??????????等同于

????????? .click(function(){

??????????? //todo

??????????})

3. 復合事件

??? jQuery中的多數事件處理方法都會直接響應JavaScript的本地方法、如click方法。

??? 但是也有少數處于跨瀏覽器優化和方便性考慮而添加的自定義處理程序。如.ready();

??? .toggle();.hover();他們被稱為復合事件。

??? 3.1 .toggle(arg1 arg2)方法

????????? 1)說明:該方法接受兩個函數作為參數,第一次在元素上單擊調用第一個函數,第二次第二個,

????????????????????? 以后交替執行。

????????? 2)可使用.toggleClass('className')代替。

????????? 3)示例:

?????????????$(document).ready(

??????????????? function(){

?????????????????? $('#switcher h3').toggle(
??????????????????????function(){
?????????????????????????$('#switcher .button').addClass('hidden');
??????????????????????},
????????????????????? function(){
?????????????????????????$('#switcher .button').removeClass('hidden');??
??????????????????????});
???????????????? });

?????????????? 可替換為

????????????? $(document).ready(
???????????????? ?function(){
???????????????????? $('#switcher h3').bind('click',
??????????????????????? function(){
???????????????????????????$('#switcher .button').toggleClass('hidden');
?????????????????????????});
???????????????? ?});

????3.2 .hover(arg1,arg2)方法

??????????1)說明:該方法接收連個函數參數,第一個在鼠標進入元素時執行,第二個

????????????????????? 在鼠標離開元素時執行。

??????????2)示例:

???????????? $(document).ready(
??????????????? function(){
?????????????????? $('#switcher .button').hover(
?????????????????????? function(){
????????????????????????? $(this).addClass('hover');??
???????????????????????},
?????????????????????? function(){
????????????????????????? $(this).removeClass('hover');
???????????????????????}
?????????????????? );
??????????????? }
??????????????);

?????3.3 事件的旅程

?????????? 1)事件捕獲(Netscape)

????????????? jQuery事件

???????????2)事件冒泡(Microsoft)

????????????? jQuery事件

?????????? 3)為了跨瀏覽器的一致性,jQuery始終會在模型的冒泡階段注冊事件處理程序

??????????????因此,我們總是可以假定最具體的元素首先獲得響應事件的機會。

?????????? 4)事件冒泡的副作用:子元素的行為傳播給了父元素。

???? 3.4 限制和終止事件:從時間(阻止事件在某個時間發送)和空間(阻止事件被傳播到某些元素)上限制

?????????? 1)阻止事件冒泡

??????????????(1)指定事件目標(空間)

?????????????????? A)事件對象:是一種js的結構,它會在元素獲得處理事件的機會時被傳遞給相應的事件處理程序。

?????????????????? B)示例:

????????????????????? $(document).ready(
????????????????????? ?? function(){
??????????????????????????? $('#switcher').click(
?????????????????????????????? function(event){
????????????????????????????????? if(event.target==this){
??????????????????????????????????? $('#switcher .button').toggleClass('hidden');
????????????????????????????????? }
???????????????????????? });
???????????????????? });

????????????? (2)停止事件傳播(時間)

?????????????????? A) .stopPropagation()方法:該方法可以完全阻止事件冒泡

?????????????????? B)示例:

????????????????????? $(document).ready(
??????????????????????????function(){
???????????????????????????? $('#switcher .button').click(
?????????????????????????????? ?function(event){
????????????????????????????????? ?$('body').removeClass();
????????????????????????????????????? if(this.id=='switcher-narrow'){
?????????????????????????????????????? ?$('body').addClass('narrow');
????????????????????????????????????? }else if(this.id=='switcher-larger'){
????????????????????????????????????????$('body').addClass('large');
????????????????????????????????????? }
?????????????????????????????????? $('#switcher .button').removeClass('selected');
?????????????????????????????????? $(this).addClass('selected');
?????????????????????????????????? event.stopPropagation();
??????????????????????????????? });
?????????????????????????? });

???????????????(3)默認操作:像錨元素有默認的鏈接操作,這些操作不屬于事件傳播。要阻止默認操作需使用

??????????????????????????????????.preventDefault()方法

???????????????(4)事件傳播和默認操作

???????????????????他們是相互獨立的兩套機制,在二者任何一方發生時,都可以終止另一方。如果想要同時停止事件傳播

?????????????????? 和默認操作,可以在事件處理程序中返回false,這是對在事件對象上同時調用.stopPropagation()和

???????????????????.preventDefault()的一種簡寫方式。

?????????????? (5)移除事件

?????????????????? A) .unbind('event' function) :移除綁定的函數

?????????????????? B).one('event' function)?:綁定函數執行一次就移除??

?????????3.5 模擬用戶操作

???????????????.trigger('event')? :js自己觸發事件。?????????????????????????
??????????????

???

???

jQuery事件


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 99久久综合狠狠综合久久一区 | 青草久草视频 | 波多野结衣亚洲一区 | 99精品视频观看 | 亚洲码在线中文在线观看 | 国产精品视频第一区二区三区 | 真人一级毛片免费观看视频 | 日韩精品一区二区三区视频 | 2019精品国产品免费观看 | 久久久成人影院 | 亚洲精品久久久久久下一站 | 国产不卡在线观看视频 | 国产精品视频免费的 | www.成人在线视频 | 99re只有精品 | 久久精品乱子伦免费 | 91在线精品视频 | 成年女人在线观看 | 中文字幕亚洲色图 | 国产99热在线观看 | 久久久国产精品网站 | 99精品视频在线在线视频观看 | 久草在线视频中文 | 欧美毛片免费 | 俄罗斯老妇性欧美毛茸茸孕交 | 欧美日韩一二三区免费视频观看 | 欧美激情精品久久久久久久久久 | 国产一区二区三区精品视频 | 91破解版在线 | 亚洲 | 高清性色生活片久久久 | 中文字幕亚洲国产 | 狠狠色丁香婷婷综合视频 | 888奇米| 久久精品免费在线观看 | 天天干天天干天天天天天天爽 | 天天干夜夜添 | 国产一级在线免费观看 | 欧美一区亚洲 | 97福利视频在线观看 | 最新国产午夜精品视频成人 | 中文字幕不卡一区 |