亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > JavaScript > 正文

分享15個大家都熟知的jquery小技巧

2019-11-20 11:06:05
字體:
來源:轉載
供稿:網友

幫助提高你jQuery應用的15個大家都熟知的jquery小技巧,分享給大家

  • 回到頂部按鈕
  • 圖片預加載
  • 判斷圖片是否加載完
  • 自動修補破損圖像
  • Hover切換class類
  • 禁用輸入
  • 停止正在加載的鏈接
  • toggle fade/slide
  • 簡單的手風琴
  • 使兩個DIV同等高度
  • 在瀏覽器標簽/新窗口打開外部鏈接
  • 根據文本獲取元素
  • 可見變化的觸發
  • Ajax調用錯誤處理
  • 鏈式操作

1、回到頂部按鈕

利用jQuery里的animate和scrollTop方法,你便不需要使用插件創建簡單的滾動到頂部動畫。

// Back to top$('.top').click(function (e) { e.preventDefault(); $('html, body').animate({scrollTop: 0}, 800);});<!-- Create an anchor tag --><a class="top" href="#">Back to top</a>

通過scrollTop的值來改變你想要滾動到的位置。其實你就是做了:在接下來的800毫秒中讓頁面滾動,直到它滾動到文檔的頂部。

備注:來看一些scrollTop的調皮行為 。

2、圖片預加載

如果你的網頁使用了很多隱藏圖片文件(例如:鼠標懸停展示的圖片),那么圖片的預加載是有意義的:

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

3、判斷圖片是否加載完

有時候你可能需要檢查圖像是否已經加載完成,以便于可以繼續執行相應的js代碼:

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

你還可以檢查一個特定的圖片是否加載完并且被帶有Id或者class的<img>標簽代替。

4、自動修補破損圖像

如果你碰巧發現在你的網站上發現破損的圖像鏈接,一個個去替代他們是痛苦的。這個簡單的代碼可以節省很多的麻煩:

$('img').on('error', function () { if(!$(this).hasClass('broken-image')) { $(this).prop('src', 'img/broken.png').addClass('broken-image'); }});

即使你沒有任何斷開的鏈接,加入這代碼也不會有任何影響。

5、Hover切換class類

比方說,當用戶將鼠標懸停在你頁面上的元素時,你想改變其視覺效果。當用戶鼠標懸停在元素上,你可以在該元素上添加一個class類,當鼠標停止懸停事件時移除此class類:

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

如果你想要一個更簡單的方式使用toggleClass方法,則僅僅需要添加必要的CSS:

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

備注:CSS在這種情況下使用是一個快速的解決方案,但要知道這點知識依舊是值得去了解下的。

6、禁用輸入

有時你可能需要用表單的提交按鈕或者某個輸入框直到用戶執行了某個動作(比如:檢查“我已閱讀條款”復選框)。在你的輸入框上設置disabled屬性,然后當你需要的時候啟用該屬性:

復制代碼 代碼如下:
$('input[type="submit"]').prop('disabled', true);

你需要做的只是需要在輸入框上再次運行prop方法,但設置的被禁用值是false:

復制代碼 代碼如下:
$('input[type="submit"]').prop('disabled', false);

7、停止正在加載的鏈接

有時你不想鏈接到特定的網頁或者重新載入頁面;你可能想讓他們做一些其他事情,如觸發一些其他的腳本。這是防止違約行動的技巧:

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

8、toggle fade/slide

滑動和淡入/淡出 是我們在jQuery中經常大量使用的動畫。你可能僅僅想在用戶做某些點擊事件的時候顯示一個元素,這時候需要淡入/淡出或者滑動方法。但是如果你需要那個元素在你第一次點擊的時候出現,在第二次點擊的時候消失,代碼如下:

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

9、簡單的手風琴

這是個簡單快速的方法創建一個手風琴:

// 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;});

通過添加這個腳本,你需要做的則是必要的HTML操作在你的頁面上。

10、使兩個DIV同等高度

有時你會想要兩個DIV有相同的高度,無論他們都有什么內容:

復制代碼 代碼如下:
$('.div').css('min-height', $('.main-div').height());

這個例子設置了DIV的最小高度,這意味著它的高度只可以比這個設置的高度大而不能小。然而,一個更靈活的方法是循環的一組元素,并設置將最高元素的高度作為高度:

var $columns = $('.column');var height = 0;$columns.each(function () { if ($(this).height() > height) { height = $(this).height(); }});$columns.height(height);

如果你想要所有的列有相同的高度:

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

11、在瀏覽器標簽/新窗口打開外部鏈接

在新的瀏覽器標簽或窗口中打開外部鏈接,并確保在同一個標簽或窗口中打開的是同一個源的鏈接:

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

備注:window.location.origin 在IE10不工作。

12、根據文本獲取元素

通過jQuery中的contains()選擇器,你能找到一個元素內的文本內容。如果文本不存在,則這個元素將被隱藏:

var search = $('#search').val();$('div:not(:contains("' + search + '"))').hide();

13、可見變化的觸發

當用戶不再聚焦或者重新聚焦一個標簽時觸發javascript腳本:

$(document).on('visibilitychange', function (e) { if (e.target.visibilityState === "visible") { console.log('Tab is now in view!'); } else if (e.target.visibilityState === "hidden") { console.log('Tab is now hidden!'); }});

14、Ajax調用錯誤處理

當一個Ajax調用返回一個404或500的錯誤時,將執行該錯誤處理。如果該處理未定義,則其他jQuery代碼便可能不會執行了。定義一個全局Ajax錯誤處理程序:

$(document).ajaxError(function (e, xhr, settings, error) { console.log(error);});

15、鏈式操作

jQuery允許通過鏈式操作來減輕反復查詢DOM和創建多個jQuery對象的過程。比如下面是你的方法調用:

$('#elem').show();$('#elem').html('bla');$('#elem').otherStuff();

這代碼可以通過鏈式大大的提高:

$('#elem') .show() .html('bla') .otherStuff();

另一個方法是在一個可變的元素緩存($作為前置):

var $elem = $('#elem');$elem.hide();$elem.html('bla');$elem.otherStuff();

鏈式和jQuery緩存方法是最好的做法,導致更短、更快的代碼。

以上就是本文的全部內容,希望幫助大家提高jQuery應用能力。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
26uuu久久噜噜噜噜| 中文字幕一区二区三区电影| 日韩中文字幕在线视频播放| 激情av一区二区| 91福利视频在线观看| 亚洲人高潮女人毛茸茸| 久久综合伊人77777尤物| 一区二区三区动漫| 国产成人综合亚洲| 久久精品99久久香蕉国产色戒| 国产成人自拍视频在线观看| 亚洲成人av片在线观看| 亚洲精品电影网| 国产69精品久久久久久| 日本在线观看天堂男亚洲| 97涩涩爰在线观看亚洲| www.亚洲人.com| 久久国产精品免费视频| 久久久人成影片一区二区三区| 久久久久中文字幕2018| 亚洲国产高清自拍| 国产成人小视频在线观看| 国产91色在线|| 亚洲黄色片网站| 久久久在线观看| 黄色91在线观看| 国产91精品久久久久久久| 狠狠久久亚洲欧美专区| 欧美夫妻性生活视频| 久久九九精品99国产精品| 午夜精品久久久久久久99热浪潮| 国产成人精品一区二区三区| 欧美精品中文字幕一区| 国产精品入口免费视频一| 亚洲欧洲自拍偷拍| 2019中文在线观看| 亚洲人成电影在线| 爱福利视频一区| 亚洲国产精品视频在线观看| 国产精品视频大全| 国内精品美女av在线播放| 国产视频精品va久久久久久| 亚洲成人激情视频| 欧美日韩成人在线观看| 亚洲美女激情视频| 91九色国产视频| 成人www视频在线观看| 日韩久久午夜影院| 欧美夫妻性生活视频| 欧美日韩激情小视频| 97超级碰碰碰久久久| 欧美在线影院在线视频| 国产精品久久色| 亚洲精品98久久久久久中文字幕| 国产精品久久久久av免费| 97在线观看视频国产| 精品视频—区二区三区免费| 国产精品爽爽ⅴa在线观看| 久久久久久久91| 97视频免费观看| 97在线视频免费播放| 亚洲高清免费观看高清完整版| 亚洲精品一区二三区不卡| 81精品国产乱码久久久久久| 国产精品久久9| 亚洲深夜福利视频| 亚洲综合第一页| 精品国产一区二区三区久久狼5月| 亚洲情综合五月天| 亚洲热线99精品视频| 亚洲精品国产精品国自产观看浪潮| 一区二区三区动漫| 国产精品青青在线观看爽香蕉| 国产精品丝袜久久久久久高清| 国产精品日韩在线一区| 日韩av在线天堂网| 日韩中文字幕在线观看| 亚洲日本成人女熟在线观看| 中文字幕日韩专区| 久久成人综合视频| 国产成人一区二区三区小说| 久久久久久久久综合| 高清日韩电视剧大全免费播放在线观看| 91在线免费看网站| 中文字幕亚洲国产| 久久激情视频久久| 久久久成人的性感天堂| 久久久久久久久91| 一区二区三区天堂av| 日本成人精品在线| 亚洲福利视频久久| 亚洲精品久久久久久下一站| 黑人巨大精品欧美一区二区三区| 久久99热这里只有精品国产| 国产精品激情av电影在线观看| 欧美交受高潮1| 欧美成人中文字幕在线| 欧美日韩亚洲一区二区| www.国产精品一二区| 欧美xxxx做受欧美| 亚洲天堂日韩电影| 欧美午夜精品伦理| 欧美肥臀大乳一区二区免费视频| 亚洲日韩中文字幕在线播放| 亚洲va久久久噜噜噜| 国产69精品久久久久9999| 亚洲成**性毛茸茸| 国产精品aaaa| 国产99久久精品一区二区永久免费| 欧美激情中文字幕在线| 黄网站色欧美视频| 欧美大片在线影院| 操日韩av在线电影| 清纯唯美亚洲综合| 黑人精品xxx一区一二区| 欧美—级高清免费播放| 亚洲精品美女免费| 国产日韩中文在线| 久久久亚洲欧洲日产国码aⅴ| 热久久这里只有| 精品福利在线观看| 亚洲一区二区三区乱码aⅴ| 亚洲欧美视频在线| 日韩精品中文字幕在线观看| 欧美网站在线观看| 亚洲伊人久久大香线蕉av| 国产精品一区二区在线| 久久久国产一区| 成人在线精品视频| 粗暴蹂躏中文一区二区三区| 色悠悠久久久久| 欧美亚洲国产日韩2020| 欧美成人激情图片网| 2023亚洲男人天堂| 狠狠做深爱婷婷久久综合一区| 91久久久久久久久久久久久| 国产精品极品尤物在线观看| 成人黄色短视频在线观看| 91国内在线视频| 成人xxxx视频| 欧美成人黑人xx视频免费观看| 亚洲影院色在线观看免费| 国产精品久久久久秋霞鲁丝| 欧美日韩国内自拍| 疯狂欧美牲乱大交777| 97在线观看视频国产| 国产精品成人av在线| 亚洲视频在线播放| 亚洲v日韩v综合v精品v| 成人国产精品一区二区| 亚洲免费视频网站| 国产日韩欧美在线观看| 色综合久综合久久综合久鬼88| 在线播放日韩欧美| 91九色视频导航| 亚洲欧美另类国产| 最近2019年手机中文字幕| 久久久国产视频91| 久久中文字幕一区| 欧美精品第一页在线播放| 韩剧1988免费观看全集| 欧美视频二区36p| 国产精品第100页| 91av在线视频观看|