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

目錄
示例 2
過濾
你應(yīng)該拿走什么
首頁 CMS教程 &#&按 新標(biāo)題:jQuery新手小貼士:停止在泳池中跳躍

新標(biāo)題:jQuery新手小貼士:停止在泳池中跳躍

Sep 01, 2023 pm 12:53 PM
jquery 新手 小貼士

新標(biāo)題:jQuery新手小貼士:停止在泳池中跳躍

作為 Nettuts+ 的編輯,我可以審查提交的教程中的大量代碼。盡管 jQuery 已經(jīng)推出多年,但我仍然最??吹揭粋€常見的錯誤。


示例#1

考慮以下代碼:

$('.nav a').click(function() {
  $(this).hide();
  $(this).css('color', 'red');
  $(this).show();

  alert('something else');

  $(this).hide();

  return false;
});

由于多種原因,上面的代碼過于復(fù)雜。不要擔(dān)心代碼實際上做了什么(它是胡言亂語)。相反,我希望您查看所有對 $(this) 的引用。

將 DOM 視為一個池。

將 DOM 視為一個池。還記得小時候,你會跳進(jìn)水池里尋找硬幣,而你的父母卻表現(xiàn)得好像在旁邊看著嗎?這將是我們在現(xiàn)實世界中的比較。

每次使用 $('.someClass') 時,jQuery 都會跳轉(zhuǎn)到池 (DOM) 中,并搜索該硬幣(或節(jié)點)。因此,當(dāng)您在一個函數(shù)中多次引用它時,就會需要大量的潛水。或者,從現(xiàn)實世界的比較來看,這是浪費(fèi)且不必要的。如果不需要,為什么要調(diào)用 jQuery?您應(yīng)該執(zhí)行我們所說的“緩存”。

$('.nav a').click(function(e) {
   var anchor = $(this);

   anchor
      .hide()
     .css('color', 'red')
     .show();

   alert('something else');

   anchor.hide();

   e.preventDefault();

});

這樣就干凈多了。雖然現(xiàn)在現(xiàn)代瀏覽器引擎的速度快得令人難以置信,并且會盡可能地彌補(bǔ)你糟糕的編碼,但你仍然應(yīng)該努力編寫高效的代碼,并避免浪費(fèi)所有精力在池中跳躍?,F(xiàn)在,從技術(shù)上講,如果您向 jQuery 傳遞一個 DOM 節(jié)點,例如 this,它不會重新查詢 DOM。它只是返回一個 jQuery 對象。

老實說,因為兩者之間的性能差異可以忽略不計,所以我們?yōu)樽约壕帉懥烁蓛舻拇a。

示例 2

讓我們考慮一個稍微復(fù)雜一點的例子:選項卡。

$('.tabs li').css('position', 'relative');

$('.tabs li').click(function() {
   $('.tabs li').removeClass('active');
   $(this).addClass('active');
   $(this).load('someHref', function() {} ); // example
   $(this).css('top', '1px');
});

這個代碼到處都是。它很丑陋,而且效率低下。第一個解決辦法是擺脫所有 CSS。如果值是動態(tài)創(chuàng)建的,則只能在 JavaScript 中放置樣式。例如,如果您需要計算元素在屏幕上的精確位置,您可以使用 .css('left',calculatedValue)。在這種情況下,可以將其全部導(dǎo)出到外部樣式表。這給我們留下了:

$('.tabs li').click(function() {
   $('.tabs li').removeClass('active');
   $(this).load('someHref', function() {} ); // example
   $(this).addClass('active');
});

接下來,我們?yōu)槭裁匆^續(xù)在 DOM 中查詢 .tabs li.tabs li$(this)?別再在泳池里跳了。讓我們“緩存” .tabs li?別再在泳池里跳了。讓我們“緩存” .tabs li 的位置。

var tabs = $('.tabs li');

tabs.click(function() {
   tabs.removeClass('active');
   $(this).load('someHref', function() {} ); // example
   $(this).addClass('active');
});

更好了,但我們?nèi)匀徽{(diào)用 $(this) 兩次,這沒什么大不了的。但是,根據(jù)我的經(jīng)驗,如果不盡早將其消滅在萌芽狀態(tài),這個數(shù)字很快就會增加。

var tabs = $('.tabs li');

tabs.click(function() {
   var tab = $(this);
   tabs.removeClass('active');
   tab.addClass('active')
     .load('someHref', function() {} ); // example
});

過濾

另一個(優(yōu)化程度稍差)選項是使用過濾。

var tabs = $('.tabs li');

tabs.click(function() {
   tabs.removeClass('active')
       .filter(this)
       .addClass('active')
       .load('someHref', function() {} ); // example
});

本例的不同之處在于,我們不是引用 $(this),而是使用 filter(),而是使用 filter() 方法將列表項的集合減少到僅單擊的項.


你應(yīng)該拿走什么

是的,如果您在函數(shù)中多次引用 $('.tabs) ,世界不會終結(jié)。如今 JavaScript 引擎速度非???。如果您要測試數(shù)千次這樣做的性能,執(zhí)行的差異可能是幾百毫秒。但問題仍然存在:你為什么要這么做?

有時,當(dāng)我們使用像 jQuery 這樣的大量抽象時,很容易忘記 $('.tabs') 是一個運(yùn)行大量代碼的實際函數(shù)。還應(yīng)該注意的是,這些概念通常適用于 JavaScript,而不僅僅是 jQuery。

使用上述 caching 技術(shù)為自己編寫更清晰的代碼。

以上是新標(biāo)題:jQuery新手小貼士:停止在泳池中跳躍的詳細(xì)內(nèi)容。更多信息請關(guān)注PHP中文網(wǎng)其他相關(guān)文章!

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

熱AI工具

Undress AI Tool

Undress AI Tool

免費(fèi)脫衣服圖片

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

用于從照片中去除衣服的在線人工智能工具。

Clothoff.io

Clothoff.io

AI脫衣機(jī)

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集成開發(fā)環(huán)境

Dreamweaver CS6

Dreamweaver CS6

視覺化網(wǎng)頁開發(fā)工具

SublimeText3 Mac版

SublimeText3 Mac版

神級代碼編輯軟件(SublimeText3)

熱門話題

Laravel 教程
1601
29
PHP教程
1502
276
jQuery中如何使用PUT請求方式? jQuery中如何使用PUT請求方式? Feb 28, 2024 pm 03:12 PM

jQuery中如何使用PUT請求方式?在jQuery中,發(fā)送PUT請求的方法與發(fā)送其他類型的請求類似,但需要注意一些細(xì)節(jié)和參數(shù)設(shè)置。PUT請求通常用于更新資源,例如更新數(shù)據(jù)庫中的數(shù)據(jù)或更新服務(wù)器上的文件。以下是在jQuery中使用PUT請求方式的具體代碼示例。首先,確保引入了jQuery庫文件,然后可以通過以下方式發(fā)送PUT請求:$.ajax({u

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

標(biāo)題:jQuery小技巧:快速修改頁面所有a標(biāo)簽的文本在網(wǎng)頁開發(fā)中,我們經(jīng)常需要對頁面中的元素進(jìn)行修改和操作。在使用jQuery時,有時候需要一次性修改頁面中所有a標(biāo)簽的文本內(nèi)容,這樣可以節(jié)省時間和精力。下面將介紹如何使用jQuery快速修改頁面所有a標(biāo)簽的文本,同時給出具體的代碼示例。首先,我們需要引入jQuery庫文件,確保在頁面中引入了以下代碼:&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庫,被廣泛用于處理DOM操作。在網(wǎng)頁開發(fā)中,經(jīng)常會遇到需要修改頁面上鏈接標(biāo)簽(a標(biāo)簽)的文本內(nèi)容的需求。本文將介紹如何使用jQuery來實現(xiàn)這個目標(biāo),并提供具體的代碼示例。首先,我們需要在頁面中引入jQuery庫。在HTML文件中添加以下代碼:

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

jQuery如何移除元素的height屬性?在前端開發(fā)中,經(jīng)常會遇到需要操作元素的高度屬性的需求。有時候,我們可能需要動態(tài)改變元素的高度,而有時候又需要移除元素的高度屬性。本文將介紹如何使用jQuery來移除元素的高度屬性,并提供具體的代碼示例。在使用jQuery操作高度屬性之前,我們首先需要了解CSS中的height屬性。height屬性用于設(shè)置元素的高度

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

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

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

jQuery是一個流行的JavaScript庫,廣泛用于網(wǎng)頁開發(fā)中。在網(wǎng)頁開發(fā)過程中,經(jīng)常需要通過JavaScript動態(tài)地向表格中添加新行。本文將介紹如何使用jQuery為表格添加新行,并提供具體的代碼示例。首先,我們需要在HTML頁面中引入jQuery庫??梢酝ㄟ^以下代碼在標(biāo)簽中引入jQuery庫:

C語言和C++:哪個更適合編程新手 C語言和C++:哪個更適合編程新手 Mar 19, 2024 am 08:30 AM

C語言和C++:哪個更適合編程新手在現(xiàn)代科技高速發(fā)展的時代,學(xué)習(xí)編程已經(jīng)成為一個越來越受歡迎的選擇,無論是作為職業(yè)發(fā)展的一部分,還是作為提高邏輯思維能力的方式。而在眾多編程語言中,C語言和C++都是非常經(jīng)典且具有代表性的語言,許多人對于如何選擇C語言還是C++來作為入門編程語言存在疑惑。那么,究竟是C語言更適合編程新手,還是C++更適合呢?需要具體代碼示例來

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

如何判斷jQuery元素是否具有特定屬性?在使用jQuery操作DOM元素時,經(jīng)常會遇到需要判斷元素是否具有某個特定屬性的情況。這種情況下,我們可以借助jQuery提供的方法來輕松實現(xiàn)這一功能。下面將介紹兩種常用的方法來判斷一個jQuery元素是否具有特定屬性,并附上具體的代碼示例。方法一:使用attr()方法和typeof操作符//判斷元素是否具有特定屬

See all articles