国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

jquery中的常用事件bind、hover、toggle等示例介紹

2019-11-20 14:20:17
字體:
來源:轉載
供稿:網友

1.$(document).ready()

$(document).ready()是jQuery中響應JavaScript內置的onload事件并執行任務的一種典型方式。它和onload具有類似的效果。但是也有一些差異:

當一個文檔完全下載到瀏覽器中時,會觸發window.onload事件。而使用$(document).ready()注冊的事件處理程序會在html下載完成并解析為Dom樹之后,代碼就可以運行,但并不意味著所有關聯文件都已經下載完畢。

一個頁面中一般只有一個onload事件處理程序,而且只能一次保存對一個函數的引用;而$(document).ready()是可以有多個。

一般來說$(document).ready()都要優于使用onload事件處理程序。但是如果關聯文件還沒有加載完成,則類似圖像高度、寬度的屬性的調用就會有問題,因此需要在不同的時候選擇合適的方法。

$(document).ready()有三種寫法,分別是:

$(document).ready(function(){ //thisis the coding... });$().ready(function(){ //thisis the coding... });$(function(){ //thisis the coding... });

2.事件綁定

語法

$(selector).bind(event,data,function)

參數和描述:

event:必需。規定添加到元素的一個或多個事件。由空格分隔多個事件。必須是有效的事件。

data 可選。規定傳遞到函數的額外數據。

function 必需。規定當事件發生時運行的函數。

對應的有unbind():移除事件

Eg: $(‘#idchoose').unbind(“click”,Function_Name)

簡寫綁定事件:一般比較喜歡偏向簡寫

$("#dividelement").bind("click",function(){//do something})改寫為:$("#dividelement").click(function(){//do something }

jQuery通過使用.bind()方法為元素進行事件綁定,通過使用.unbind()方法為元素進行解除綁定。而且.bind()方法是可以執行多次綁定的,如果沒有綁定,在進行解除綁定的時候,這都是安全的。

很多時候某一個事件只需要觸發一次,隨后就要立即解除綁定,按照傳統的做法,我們可能會先進行事件綁定,然后在事件執行完畢后進行解除綁定。jQuery為我們提供了一種簡寫的方法.one來專門解決上述情景下的繁瑣的代碼編寫,示例如下:

$(document).ready(function(){$('#swotcjer').one('click',toggleStyleSwitcher);});

附帶說下,用bind綁定事件的好處是可以定義自定義的事件,而且可以一次綁定多個事件。

3.合成事件

在進行事件捕獲的時候,常常需要捕獲組合的用戶操作,并且以多個函數作為響應,這些事件我們稱為復合事件。

jQuery提供的.ready()方法就是最常用的符合事件方法之一,除此之外,還有進行交互處理的時候用到的兩個函數:

.hover(enter,leave) 一個模仿懸停事件(鼠標移動到一個對象上面及移出這個對象)的方法。這是一個自定義的方法,它為頻繁使用的任務提供了一種“保持在其中”的狀態。

$(function(){$("#panelh5.head").hover(function(){$(this).next().show();},function(){$(this).next().hide(); })})

.toggle(fn1,fn2,..fnN) 每次點擊時切換要調用的函數。用于模擬鼠標連續單擊事件。示例:

$(function(){$("#panelh5.head").toggle(function(){$(this).addClass("highlight");$(this).next().show();},function(){$(this).removeClass("highlight");$(this).next().hide();});})

4.事件對象與事件冒泡

事件對象:在程序中使用事件對象非常簡單,只需要為函數添加一個參數,eg:

$(“element”).click(function(event){//event:事件對象})

當點擊“element”元素時候,事件對象就被創建了。這個對象只有事件處理函數能訪問。當事件處理函數執行完畢,事件對象就被銷毀了。

事件捕獲: 允許多個元素響應事件的一種策略。在事件捕獲的過程中,事件首先會交給最外層的元素,接著再交給更具體的元素。 (body->div->span)

事件冒泡:另外一種相反的策略叫時間冒泡,當事件發生時,會首先發送給最具體的元素,在這個元素獲得響應機會之后,事件會向上冒泡到更一般的元素。事件冒泡有時候會產生副作用,導致始料不及的行為。 (span->div->body)

阻止事件冒泡的三種方法

通過調用.preventDefault()方法可以在出發默認操作之前終止事件。

調用event.stopPropagation()停止事件傳播

jQuery提供了一個.stopPropagation()方法,使用該方法可以完全阻止事件冒泡。

5.使用event.tatget屬性明確事件對象

事件處理程序中event保存著事件對象。而event.tatget屬性保存著發生事件的目標元素。這個屬性是DOMAPI中規定的,但是沒有被所有瀏覽器實現。jQuery對這個事件對象進行了必要的擴展,從而在任何瀏覽器中都能夠使用這個屬性。通過.target,可以確定DOM中首先接收到事件的元素。而且,我們知道this引用的是處理事件的DOM元素。

使用event.tatget屬性 明確事件對象阻止事件冒泡的代碼如下:

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

其他事件對象屬性可以參考w3c上的介紹。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 马龙县| 南开区| 丹东市| 涿鹿县| 广东省| 体育| 靖宇县| 成武县| 田阳县| 阜新| 海原县| 保山市| 安达市| 广饶县| 万全县| 东莞市| 阿拉善左旗| 宜城市| 长春市| 大理市| 安岳县| 呼伦贝尔市| 河北省| 德化县| 西丰县| 白水县| 滦平县| 通榆县| 无锡市| 长岛县| 定边县| 囊谦县| 沙田区| 讷河市| 寿阳县| 辽阳市| 富顺县| 涟水县| 曲松县| 鄂尔多斯市| 曲靖市|