国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

首頁(yè) web前端 js教程 jquery中的mouseenter的深入理解

jquery中的mouseenter的深入理解

Jun 28, 2017 am 09:47 AM
jquery 理解

說(shuō)在前面:先說(shuō)一下兩者之間的區(qū)別,假設(shè)當(dāng)前元素為element,mouseover事件具有冒泡特性,也就是說(shuō)無(wú)論滑鼠是從別的元素移動(dòng)到element或者是從element的子元素移動(dòng)到element都會(huì)觸發(fā)mouseover事件。對(duì)於mouseenter事件,該事件沒(méi)有冒泡特性,也就是說(shuō)只有滑鼠穿過(guò)該事件的時(shí)候才會(huì)觸發(fā)mouseenter,如果滑鼠一直在element內(nèi)部“遊走”,則不會(huì)觸發(fā)mouseenter。具體的例子可以參考這個(gè)例子點(diǎn)擊打開(kāi)連結(jié)。

前提說(shuō)完了,那怎麼使用mouseover實(shí)作mouseenter呢!

我們先來(lái)看看jQuery是怎麼實(shí)現(xiàn)的,以下是jQuery中實(shí)作mouseenter以及mouseleave的程式碼:

jQuery.each({
	mouseenter: "mouseover",
	mouseleave: "mouseout"
}, function( orig, fix ) {
	jQuery.event.special[ orig ] = {
		delegateType: fix,
		bindType: fix,

		handle: function( event ) {
			var ret,
				target = this,
				related = event.relatedTarget,
				handleObj = event.handleObj;

			// For mousenter/leave call the handler if related is outside the target.
			// NB: No relatedTarget if the mouse left/entered the browser window
			if ( !related || (related !== target && !jQuery.contains( target, related )) ) {
				event.type = handleObj.origType;
				ret = handleObj.handler.apply( this, arguments );
				event.type = fix;
			}
			return ret;
		}
	};
});

其他的倒不用看,關(guān)鍵在於if 判斷語(yǔ)句以及其中的組合條件,我們可以看到如果related是空或undefined,則表示滑鼠已經(jīng)移動(dòng)到window上面了,那麼這時(shí)肯定已經(jīng)穿過(guò)了該元素。為什麼這麼肯定,我們需要知道的是,底層這個(gè)判斷語(yǔ)句是在mouseover事件中處理的,related返回的就是滑鼠是從哪一個(gè)元素移動(dòng)到element的,如果是window,那麼肯定是「穿過(guò)」了element .

? ? ? ? 那麼看第二個(gè)條件,related!==target && !jQuery.contains(target,related)。我們可以看到target=this;那麼target指向的就是element,而related指向的則是由哪一個(gè)元素移動(dòng)到element的,我們知道m(xù)ouseover和mouseenter的區(qū)別在於,在從子元素中移動(dòng)到element的時(shí)候是否觸發(fā)相應(yīng)的事件。這個(gè)情況就可以用related!==target && jQuery.contains(target,related)來(lái)過(guò)濾掉。

? ? ? ? 透過(guò)上一段的解釋,我們知道這個(gè)條件的功能是,如果是從別的元素移動(dòng)到element的時(shí)候,判斷是否是從element的子元素移動(dòng)過(guò)來(lái)的,如果是的話,則不觸發(fā)事件,如果不是的話(!jQuery.contains(target,related)),則說(shuō)明是從element的「外部」移動(dòng)過(guò)來(lái)的,那麼就表示滑鼠已經(jīng)穿過(guò)了element,就需要觸發(fā)事件。

? ? ? ? 當(dāng)然了這是jQuery下的實(shí)現(xiàn),如果想用原生的js程式碼實(shí)現(xiàn),可以結(jié)合relatedTarget實(shí)現(xiàn)。當(dāng)然在IE中也許我們會(huì)用到fromElement以及toElement結(jié)合的方式來(lái)實(shí)現(xiàn)。

? ? ? ? 這是自己學(xué)習(xí)過(guò)程中的記錄了,我的理解可能有誤,希望大家在評(píng)論中能夠提出不足之處。

以上是jquery中的mouseenter的深入理解的詳細(xì)內(nèi)容。更多資訊請(qǐng)關(guān)注PHP中文網(wǎng)其他相關(guān)文章!

本網(wǎng)站聲明
本文內(nèi)容由網(wǎng)友自願(yuàn)投稿,版權(quán)歸原作者所有。本站不承擔(dān)相應(yīng)的法律責(zé)任。如發(fā)現(xiàn)涉嫌抄襲或侵權(quán)的內(nèi)容,請(qǐng)聯(lián)絡(luò)admin@php.cn

熱AI工具

Undress AI Tool

Undress AI Tool

免費(fèi)脫衣圖片

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅(qū)動(dòng)的應(yīng)用程序,用於創(chuàng)建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費(fèi)的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費(fèi)的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強(qiáng)大的PHP整合開(kāi)發(fā)環(huán)境

Dreamweaver CS6

Dreamweaver CS6

視覺(jué)化網(wǎng)頁(yè)開(kāi)發(fā)工具

SublimeText3 Mac版

SublimeText3 Mac版

神級(jí)程式碼編輯軟體(SublimeText3)

jQuery中如何使用PUT請(qǐng)求方式? jQuery中如何使用PUT請(qǐng)求方式? Feb 28, 2024 pm 03:12 PM

jQuery中如何使用PUT請(qǐng)求方式?在jQuery中,發(fā)送PUT請(qǐng)求的方法與發(fā)送其他類型的請(qǐng)求類似,但需要注意一些細(xì)節(jié)和參數(shù)設(shè)定。 PUT請(qǐng)求通常用於更新資源,例如更新資料庫(kù)中的資料或更新伺服器上的檔案。以下是在jQuery中使用PUT請(qǐng)求方式的具體程式碼範(fàn)例。首先,確保引入了jQuery庫(kù)文件,然後可以透過(guò)以下方式發(fā)送PUT請(qǐng)求:$.ajax({u

jQuery小技巧:快速修改頁(yè)面所有a標(biāo)籤的文本 jQuery小技巧:快速修改頁(yè)面所有a標(biāo)籤的文本 Feb 28, 2024 pm 09:06 PM

標(biāo)題:jQuery小技巧:快速修改頁(yè)面所有a標(biāo)籤的文字在網(wǎng)頁(yè)開(kāi)發(fā)中,我們經(jīng)常需要對(duì)頁(yè)面中的元素進(jìn)行修改和操作。使用jQuery時(shí),有時(shí)候需要一次修改頁(yè)面中所有a標(biāo)籤的文字內(nèi)容,這樣可以節(jié)省時(shí)間和精力。以下將介紹如何使用jQuery快速修改頁(yè)面所有a標(biāo)籤的文本,同時(shí)給出具體的程式碼範(fàn)例。首先,我們需要引入jQuery庫(kù)文件,確保在頁(yè)面中引入了以下程式碼:&lt

使用jQuery修改所有a標(biāo)籤的文字內(nèi)容 使用jQuery修改所有a標(biāo)籤的文字內(nèi)容 Feb 28, 2024 pm 05:42 PM

標(biāo)題:使用jQuery修改所有a標(biāo)籤的文字內(nèi)容jQuery是一款受歡迎的JavaScript庫(kù),被廣泛用於處理DOM操作。在網(wǎng)頁(yè)開(kāi)發(fā)中,經(jīng)常會(huì)遇到需要修改頁(yè)面上連結(jié)標(biāo)籤(a標(biāo)籤)的文字內(nèi)容的需求。本文將介紹如何使用jQuery來(lái)實(shí)現(xiàn)這個(gè)目標(biāo),並提供具體的程式碼範(fàn)例。首先,我們需要在頁(yè)面中引入jQuery庫(kù)。在HTML檔案中加入以下程式碼:

jQuery如何移除元素的height屬性? jQuery如何移除元素的height屬性? Feb 28, 2024 am 08:39 AM

jQuery如何移除元素的height屬性?在前端開(kāi)發(fā)中,經(jīng)常會(huì)遇到需要操作元素的高度屬性的需求。有時(shí)候,我們可能需要?jiǎng)討B(tài)改變?cè)氐母叨?,而有時(shí)候又需要移除元素的高度屬性。本文將介紹如何使用jQuery來(lái)移除元素的高度屬性,並提供具體的程式碼範(fàn)例。在使用jQuery操作高度屬性之前,我們首先需要了解CSS中的height屬性。 height屬性用於設(shè)定元素的高度

了解jQuery中eq的作用及應(yīng)用場(chǎng)景 了解jQuery中eq的作用及應(yīng)用場(chǎng)景 Feb 28, 2024 pm 01:15 PM

jQuery是一種流行的JavaScript庫(kù),被廣泛用於處理網(wǎng)頁(yè)中的DOM操作和事件處理。在jQuery中,eq()方法是用來(lái)選擇指定索引位置的元素的方法,具體使用方法和應(yīng)用場(chǎng)景如下。在jQuery中,eq()方法選擇指定索引位置的元素。索引位置從0開(kāi)始計(jì)數(shù),即第一個(gè)元素的索引是0,第二個(gè)元素的索引是1,依此類推。 eq()方法的語(yǔ)法如下:$("s

使用jQuery為表格新增一行的方法介紹 使用jQuery為表格新增一行的方法介紹 Feb 29, 2024 am 08:12 AM

jQuery是一個(gè)受歡迎的JavaScript函式庫(kù),廣泛用於網(wǎng)頁(yè)開(kāi)發(fā)。在網(wǎng)頁(yè)開(kāi)發(fā)過(guò)程中,經(jīng)常需要透過(guò)JavaScript動(dòng)態(tài)地在表格中新增一行。本文將介紹如何使用jQuery為表格新增一行,並提供具體的程式碼範(fàn)例。首先,我們需要在HTML頁(yè)面中引入jQuery函式庫(kù)??梢酝高^(guò)以下程式碼在標(biāo)籤中引入jQuery庫(kù):

如何判斷jQuery元素是否具有特定屬性? 如何判斷jQuery元素是否具有特定屬性? Feb 29, 2024 am 09:03 AM

如何判斷jQuery元素是否具有特定屬性?在使用jQuery操作DOM元素時(shí),常會(huì)遇到需要判斷元素是否具有某個(gè)特定屬性的情況。在這種情況下,我們可以藉助jQuery提供的方法來(lái)輕鬆實(shí)現(xiàn)這項(xiàng)功能。以下將介紹兩種常用的方法來(lái)判斷一個(gè)jQuery元素是否具有特定屬性,並附上具體的程式碼範(fàn)例。方法一:使用attr()方法和typeof運(yùn)算子//判斷元素是否具有特定屬

jQuery中如何檢查元素是否包含某個(gè)屬性值? jQuery中如何檢查元素是否包含某個(gè)屬性值? Feb 28, 2024 pm 02:54 PM

在jQuery中,我們經(jīng)常需要檢查元素是否包含特定的屬性值。這樣做可以幫助我們根據(jù)元素上的屬性值執(zhí)行對(duì)應(yīng)的操作。在本文中,我將介紹如何使用jQuery來(lái)檢查元素是否包含某個(gè)屬性值,並提供具體的程式碼範(fàn)例。首先,讓我們先了解jQuery中的一些常用方法來(lái)操作元素的屬性:.attr():用來(lái)取得或設(shè)定元素的屬性值。 .prop():用於取得或設(shè)定元素的屬性值

See all articles