12個(gè)JQuery小貼士

英文原文:jQuery Tips Everyone Should Know
譯文地址:淡忘~淺思 ? [譯]12個(gè)JQuey Tips

今天骆膝,與大家分享一些每個(gè)前端開(kāi)發(fā)者都需要知道的JQuery小貼士音比。開(kāi)發(fā)者們,來(lái)看看你們知道多少呢?

返回頂部

使用JQuery的 animatescrollTop方法可以創(chuàng)建簡(jiǎn)單地返回頂部的動(dòng)畫(huà):

// Back to top
$('a.top').click(function (e) {
  e.preventDefault();
  $(document.body).animate({scrollTop: 0}, 800);
});

HTML中得有一個(gè)按鈕:

<!-- Create an anchor tag -->
<a class="top" href="#">Back to top</a>

可以改變 scrollTop的值來(lái)定位滾動(dòng)條的位置层宫。

圖片預(yù)加載

如果頁(yè)面使用了很多不是最初加載便可見(jiàn)的圖片学密,有必要進(jìn)行預(yù)加載:

$.preloadImages = function () {
  for (var i = 0; i < arguments.length; i++) {
    $('img').attr('src', arguments[i]);
  }
};
$.preloadImages('img/hover-on.png', 'img/hover-off.png');

判斷圖片是否完全加載

有時(shí)需要圖片完全加載才能進(jìn)行后面的操作,下面的這段腳本可以實(shí)現(xiàn):

$('img').load(function () {
  console.log('image load successful');
});

你也可以通過(guò)帶 id或者 classimg標(biāo)簽來(lái)判斷某張?zhí)囟ǖ膱D片是否完全加載横浑。

自動(dòng)修復(fù)損壞圖片

如果圖片損壞剔桨,可以用另外一張進(jìn)行替換:

$('img').on('error', function () {
  $(this).prop('src', 'img/broken.png');
});

Hover狀態(tài)的類(lèi)切換

當(dāng)用戶(hù)的鼠標(biāo)指針懸浮在一個(gè)可以點(diǎn)擊的元素上時(shí),你可以通過(guò)添加一個(gè) class改變它的視覺(jué)效果徙融,鼠標(biāo)指針離開(kāi)該元素時(shí)洒缀,就移開(kāi)剛剛添加的 class

$('.btn').hover(function () {
  $(this).addClass('hover');
  }, function () {
    $(this).removeClass('hover');
  });

一個(gè)更簡(jiǎn)單的方式是使用 toggleClass

$('.btn').hover(function () {
  $(this).toggleClass('hover');
});

貼士:在這種情況下,CSS可能是更快的解決方案欺冀,但仍然值得去了解這個(gè)树绩。

輸入框的不可編輯

有時(shí),你想要表單的提交按鈕或者文本框變的不可編輯隐轩,直到用戶(hù)完成某個(gè)特定的動(dòng)作饺饭,通過(guò)修改 input元素的disabled屬性來(lái)實(shí)現(xiàn):

$('input[type="submit"]').prop('disabled', true);

再次調(diào)用 prop方法將 disabled值改為 false,就可以更改元素狀態(tài):

$('input[type="submit"]').prop('disabled', false);

停止鏈接加載

若你不想點(diǎn)擊鏈接跳轉(zhuǎn)到另一個(gè)頁(yè)面或者重新加載頁(yè)面职车,僅僅只想讓它做點(diǎn)別的事情瘫俊,如觸發(fā)其它腳本,則需要阻止鏈接的默認(rèn)行為:

$('a.no-link').click(function (e) {
  e.preventDefault();
});

Fade/Slide切換

Slideing 和 fading 是很常用的 JQuery 動(dòng)畫(huà)悴灵。如果你想要在用戶(hù)產(chǎn)生點(diǎn)擊事件時(shí)顯示一個(gè)元素军援,可以用 fadeIn或者slideDown,若要實(shí)現(xiàn)第一次點(diǎn)擊顯示元素而第二次點(diǎn)擊隱藏元素的效果称勋,可以參考下面的腳本:

// Fade
$('.btn').click(function () {
  $('.element').fadeToggle('slow');
});
// Toggle
$('.btn').click(function () {
  $('.element').slideToggle('slow');
});

簡(jiǎn)單地手風(fēng)琴

下面的這段腳本可以簡(jiǎn)單實(shí)現(xiàn)手風(fēng)琴效果:

// Close all panels
$('#accordion').find('.content').hide();
// Accordion
$('#accordion').find('.accordion-header').click(function () {
  var next = $(this).next();
  next.slideToggle('fast');
  $('.content').not(next).slideUp('fast');
  return false;
});

讓兩個(gè)Div等高

有時(shí)胸哥,需要讓兩個(gè)Div保持等高,而不管兩個(gè)Div的內(nèi)容如何:

$('.div').css('min-height', $(.main-div).height());
var $columns = $('.column');
var height = 0;
$columns.each(function () {
  if ($(this).height() > height) {
    height = $(this).height();
  }
});
$columns.height(height);

在上述的示例中赡鲜,會(huì)循環(huán)一個(gè)元素集合空厌,并將元素的高度設(shè)置成元素集合中高度最高的。若要所有 column保持同樣地高度银酬,則可以這樣:

var $rows = $('.same-height-columns');
$rows.each(function () {
  $(this).find('.column').height($(this).height());
});

在新的Tab/Window打開(kāi)外鏈

在瀏覽器的新Tab/Window打開(kāi)外鏈嘲更,并且在同一個(gè)Tab/Window打開(kāi)同源的鏈接:

$('a[href^="http"]').attr('target','_blank');
$('a[href^="http://"]').attr('target','_blank');
$('a[href^="'+window.location.origin+'"]').attr('target','_self');

貼士:window.location.origin不能在IE10上正常工作。

通過(guò)文本查找元素

利用 JQuery 的 contains()選擇器可以查找一個(gè)包含特定文本的元素揩瞪,如果文本不存在赋朦,元素則隱藏:

var search = $('#search').val();
$('div:not(:contains("'+search+'"))').hide();
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子宠哄,更是在濱河造成了極大的恐慌壹将,老刑警劉巖,帶你破解...
    沈念sama閱讀 212,383評(píng)論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件毛嫉,死亡現(xiàn)場(chǎng)離奇詭異诽俯,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)承粤,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,522評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門(mén)暴区,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人辛臊,你說(shuō)我怎么就攤上這事仙粱。” “怎么了彻舰?”我有些...
    開(kāi)封第一講書(shū)人閱讀 157,852評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵缰盏,是天一觀(guān)的道長(zhǎng)。 經(jīng)常有香客問(wèn)我淹遵,道長(zhǎng),這世上最難降的妖魔是什么负溪? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,621評(píng)論 1 284
  • 正文 為了忘掉前任透揣,我火速辦了婚禮,結(jié)果婚禮上川抡,老公的妹妹穿的比我還像新娘辐真。我一直安慰自己,他們只是感情好崖堤,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,741評(píng)論 6 386
  • 文/花漫 我一把揭開(kāi)白布侍咱。 她就那樣靜靜地躺著,像睡著了一般密幔。 火紅的嫁衣襯著肌膚如雪楔脯。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 49,929評(píng)論 1 290
  • 那天胯甩,我揣著相機(jī)與錄音昧廷,去河邊找鬼。 笑死偎箫,一個(gè)胖子當(dāng)著我的面吹牛木柬,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播淹办,決...
    沈念sama閱讀 39,076評(píng)論 3 410
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼眉枕,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起速挑,我...
    開(kāi)封第一講書(shū)人閱讀 37,803評(píng)論 0 268
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤谤牡,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后梗摇,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體拓哟,經(jīng)...
    沈念sama閱讀 44,265評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,582評(píng)論 2 327
  • 正文 我和宋清朗相戀三年伶授,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了断序。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,716評(píng)論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡糜烹,死狀恐怖违诗,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情疮蹦,我是刑警寧澤诸迟,帶...
    沈念sama閱讀 34,395評(píng)論 4 333
  • 正文 年R本政府宣布,位于F島的核電站愕乎,受9級(jí)特大地震影響阵苇,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜感论,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,039評(píng)論 3 316
  • 文/蒙蒙 一绅项、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧比肄,春花似錦快耿、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,798評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至妥色,卻和暖如春搪花,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背嘹害。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,027評(píng)論 1 266
  • 我被黑心中介騙來(lái)泰國(guó)打工鳍侣, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人吼拥。 一個(gè)月前我還...
    沈念sama閱讀 46,488評(píng)論 2 361
  • 正文 我出身青樓倚聚,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親凿可。 傳聞我的和親對(duì)象是個(gè)殘疾皇子惑折,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,612評(píng)論 2 350

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

  • 問(wèn)答題47 /72 常見(jiàn)瀏覽器兼容性問(wèn)題與解決方案授账? 參考答案 (1)瀏覽器兼容問(wèn)題一:不同瀏覽器的標(biāo)簽?zāi)J(rèn)的外補(bǔ)...
    _Yfling閱讀 13,737評(píng)論 1 92
  • 一、樣式篇 第1章 初識(shí)jQuery (1)環(huán)境搭建 進(jìn)入官方網(wǎng)站獲取最新的版本 http://jquery.co...
    凜0_0閱讀 3,358評(píng)論 0 44
  • //------------------------- 第一章 認(rèn)識(shí)JQuery ----------------...
    米塔塔閱讀 707評(píng)論 0 9
  • 通過(guò)jQuery惨驶,您可以選劝兹取(查詢(xún),query)HTML元素粗卜,并對(duì)它們執(zhí)行“操作”(actions)屋确。 jQuer...
    枇杷樹(shù)8824閱讀 652評(píng)論 0 3
  • (一)借錢(qián)的女人 小張和閨蜜阿薇臨時(shí)起意報(bào)名參加了日本豪華旅行團(tuán),一到免稅店閨蜜阿薇就“剎不住車(chē)”了续扔,一上午就刷爆...
    吐槽滴桂圓兒閱讀 260評(píng)論 0 0