每個程式設計師都會的 35 個 jQuery 小技巧

2021-01-10 51CTO

1. 禁止右鍵點擊

$(document).ready(function(){     $(document).bind("contextmenu",function(e){         return false;     }); }); 

2. 隱藏搜索文本框文字

Hide when clicked in the search field, the value.(example can be found below in the comment fields)  $(document).ready(function() { $("input.text1").val("Enter your search text here");    textFill($('input.text1')); });      function textFill(input){       var originalvalue = input.val();      input.focus( function(){           if( $.trim(input.val()) == originalvalue ){ input.val(''); }      });      input.blur( function(){           if( $.trim(input.val()) == '' ){ input.val(originalvalue); }      }); } 

3. 在新窗口中打開連結

XHTML 1.0 Strict doesn’t allow this attribute in the code, so use this to keep the code valid.  $(document).ready(function() {        $('a[href^="http://"]').attr("target", "_blank");         $('a[@rel$='external']').click(function(){       this.target = "_blank";    }); });  <a href="http://www.opensourcehunter.com" rel=external>open link</a> 

4. 檢測瀏覽器

注: 在版本jQuery 1.4中,$.support 替換掉了$.browser 變量  $(document).ready(function() {  if ($.browser.mozilla && $.browser.version >= "1.8" ){      }   if( $.browser.safari ){      }   if( $.browser.chrome){      }   if( $.browser.camino){      }   if( $.browser.opera){      }   if ($.browser.msie && $.browser.version <= 6 ){      }   if ($.browser.msie && $.browser.version > 6){      } }); 

5. 預加載圖片

This piece of code will prevent the loading of all images, which can be useful if you have a site with lots of images.  $(document).ready(function() { jQuery.preloadImages = function() {   for(var i = 0; i<ARGUMENTS.LENGTH; jQuery(?<img { i++)>").attr("src", arguments[i]);   } }  $.preloadImages("image1.jpg"); }); 

6. 頁面樣式切換

$(document).ready(function() {     $("a.Styleswitcher").click(function() {                  $('link[rel=stylesheet]').attr('href' , $(this).attr('rel'));     });   <LINK rel=stylesheet type=text/css href="default.css">  <A href="#" rel=default.css>Default Theme</A> <A href="#" rel=red.css>Red Theme</A> <A href="#" rel=blue.css>Blue Theme</A> }); 

7. 列高度相同

如果使用了兩個CSS列,使用此種方式可以是兩列的高度相同。

$(document).ready(function() { function equalHeight(group) {     tallest = 0;     group.each(function() {         thisHeight = $(this).height();         if(thisHeight > tallest) {             tallest = thisHeight;         }     });     group.height(tallest); }  $(document).ready(function() {     equalHeight($(".left"));     equalHeight($(".right")); }); }); 

8. 動態控制頁面字體大小

用戶可以改變頁面字體大小

$(document).ready(function() {      var originalFontSize = $('html').css('font-size');     $(".resetFont").click(function(){     $('html').css('font-size', originalFontSize);   });      $(".increaseFont").click(function(){     var currentFontSize = $('html').css('font-size');     var currentFontSizeNum = parseFloat(currentFontSize, 10);     var newFontSize = currentFontSizeNum*1.2;     $('html').css('font-size', newFontSize);     return false;   });      $(".decreaseFont").click(function(){     var currentFontSize = $('html').css('font-size');     var currentFontSizeNum = parseFloat(currentFontSize, 10);     var newFontSize = currentFontSizeNum*0.8;     $('html').css('font-size', newFontSize);     return false;   }); }); 

9. 返回頁面頂部功能

For a smooth(animated) ride back to the top(or any location).

$(document).ready(function() { $('a[href*=#]').click(function() { if (location.pathname.replace(/^\ && location.hostname == this.hostname) {    var $target = $(this.hash);    $target = $target.length && $target    || $('[name=' + this.hash.slice(1) +']');    if ($target.length) {   var targetOffset = $target.offset().top;   $('html,body')   .animate({scrollTop: targetOffset}, 900);     return false;    }   }   });   <A name=top></A>  <A href="#top">go to top</A> }); 

10. 獲得滑鼠指針XY值

Want to know where your mouse cursor is?

$(document).ready(function() {    $().mousemove(function(e){           $('#XY').html("X Axis : " + e.pageX + " | Y Axis " + e.pageY);   });  <DIV id=XY></DIV>  }); 

11.返回頂部按鈕

你可以利用 animate 和 scrollTop 來實現返回頂部的動畫,而不需要使用其他插件。

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

改變 scrollTop 的值可以調整返回距離頂部的距離,而 animate 的第二個參數是執行返回動作需要的時間(單位:毫秒)。

12.預加載圖片

如果你的頁面中使用了很多不可見的圖片(如:hover 顯示),你可能需要預加載它們:

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

13.檢查圖片是否加載完成

有時候你需要確保圖片完成加載完成以便執行後面的操作:

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

你可以把 img 替換為其他的 ID 或者 class 來檢查指定圖片是否加載完成。

14.自動修改破損圖像

如果你碰巧在你的網站上發現了破碎的圖像連結,你可以用一個不易被替換的圖像來代替它們。添加這個簡單的代碼可以節省很多麻煩:

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

即使你的網站沒有破碎的圖像連結,添加這段代碼也沒有任何害處。

15.滑鼠懸停(hover)切換 class 屬性

假如當用戶滑鼠懸停在一個可點擊的元素上時,你希望改變其效果,下面這段代碼可以在其懸停在元素上時添加 class 屬性,當用戶滑鼠離開時,則自動取消該 class 屬性:

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

你只需要添加必要的CSS代碼即可。如果你想要更簡潔的代碼,可以使用 toggleClass 方法:

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

註:直接使用CSS實現該效果可能是更好的解決方案,但你仍然有必要知道該方法。

16.禁用 input 欄位

有時你可能需要禁用表單的 submit 按鈕或者某個 input 欄位,直到用戶執行了某些操作(例如,檢查「已閱讀條款」複選框)。可以添加 disabled 屬性,直到你想啟用它時:

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

你要做的就是執行 removeAttr 方法,並把要移除的屬性作為參數傳入:

$('input[type="submit"]').removeAttr('disabled');

17.阻止連結加載

有時你不希望連結到某個頁面或者重新加載它,你可能希望它來做一些其他事情或者觸發一些其他腳本,你可以這麼做:

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

18.切換 fade/slide

fade 和 slide 是我們在 jQuery 中經常使用的動畫效果,它們可以使元素顯示效果更好。但是如果你希望元素顯示時使用***種效果,而消失時使用第二種效果,則可以這麼做:

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

19.簡單的手風琴效果

這是一個實現手風琴效果快速簡單的方法:

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

20.讓兩個 DIV 高度相同

有時你需要讓兩個 div 高度相同,而不管它們裡面的內容多少。可以使用下面的代碼片段:

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

這段代碼會循環一組元素,並設置它們的高度為元素中的***高。

21. 驗證元素是否為空

This will allow you to check if an element is empty.  $(document).ready(function() {   if ($('#id').html()) {        } }); 

22. 替換元素

$(document).ready(function() {    $('#id').replaceWith(' <DIV>I have been replaced</DIV>  '); }); 

23. jQuery延時加載功能

$(document).ready(function() {    window.setTimeout(function() {          }, 1000); }); 

24. 移除單詞功能

$(document).ready(function() {    var el = $('#id');    el.html(el.html().replace(/word/ig, "")); }); 

25. 驗證元素是否存在於jquery對象集合中

$(document).ready(function() {    if ($('#id').length) {      } }); 

26. 使整個DIV可點擊

$(document).ready(function() {     $("div").click(function(){              window.location=$(this).find("a").attr("href"); return false;     });  <DIV><A href="index.html">home</A></DIV>  }); 

27. ID與Class之間轉換

當改變Window大小時,在ID與Class之間切換

$(document).ready(function() {    function checkWindowSize() {     if ( $(window).width() > 1200 ) {         $('body').addClass('large');     }     else {         $('body').removeClass('large');     }    } $(window).resize(checkWindowSize); }); 

28. 克隆對象

$(document).ready(function() {    var cloned = $('#id').clone();  <DIV id=id></DIV>  }); 

29. 使元素居屏幕中間位置

$(document).ready(function() {   jQuery.fn.center = function () {       this.css("position","absolute");       this.css("top", ( $(window).height() - this.height() ) / 2+$(window).scrollTop() + "px");       this.css("left", ( $(window).width() - this.width() ) / 2+$(window).scrollLeft() + "px");       return this;   }   $("#id").center(); }); 

30. 寫自己的選擇器

$(document).ready(function() {    $.extend($.expr[':'], {        moreThen1000px: function(a) {            return $(a).width() > 1000;       }    });   $('.box:moreThen1000px').click(function() {              alert('The element that you have clicked is over 1000 pixels wide');   }); }); 

31. 統計元素個數

$(document).ready(function() {    $("p").size(); }); 

32. 使用自己的 Bullets

$(document).ready(function() {    $("ul").addClass("Replaced");    $("ul > li").prepend("‒ ");  ul.Replaced { list-style : none; } }); 

33. 引用Google主機上的Jquery類庫

 <SCRIPT src="http://www.google.com/jsapi"></SCRIPT> <SCRIPT type=text/javascript> google.load("jquery", "1.2.6"); google.setOnLoadCallback(function() {      }); </SCRIPT><SCRIPT type=text/javascript src="http://ajax.googleapis.com/ajax/libs/jquery/1.2.6/jquery.min.js"></SCRIPT>   <SCRIPT type=text/javascript src="http://ajax.googleapis.com/ajax/libs/jquery/1.2.6/jquery.min.js"></SCRIPT> 

34. 禁用Jquery(動畫)效果

$(document).ready(function() {     jQuery.fx.off = true; }); 

35. 與其他Javascript類庫衝突解決方案

$(document).ready(function() {    var $jq = jQuery.noConflict();    $jq('#id').show(); }); 

【編輯推薦】

點讚 0

相關焦點

  • 程式設計師「離職小技巧」
    最近暢遊網際網路,發現一些離職小技巧,讀後,內心被深深的打動了但是細細的品過之後,發現對我們程式設計師不太適用。例如:都是妙計,但是咱程式設計師不好學。然後難不倒我,我又學來了下面 6 條建議。『縱橫職場秘籍』Leader 說 「辛苦了」,你就回「你也別閒著,幫我倒杯水」,表示對領導關懷的認可。
  • jQuery(一)選擇器
    1.2 jQuery的引用:    1.可以通過官網下載jquery.min.js,接著引用      2.引用在線連結 <script src="http://libs.baidu.com/jquery/2.1.4/jquery.min.js"
  • 14個jQuery 實時搜索插件,很難不愛!
    如果程式設計師使用CSS框架,可以考慮Semantic UI。它有一個很酷的搜索組件,使程式設計師可以很容易地在表單上實現實時搜索。  小但很強大,如果使用API設置選項,可以執行自定義,例如將結果分組。同時,Semantic UI還專為React,Meteor,Ember和Angular設計了不同的風格。
  • Jquery >>> 002
    :nth-child()  獲取父元素中第X個元素案例1:nth-child(2)2、JQuery對象總結:用jquery選擇器得到的對象,就是jquery對象。下面這個代碼是jquery手冊中講解map用法的示例的代碼:
  • jQuery 選擇器
    ("*")選取所有元素在線實例$(this)選取當前 HTML 元素在線實例$("p.intro")選取 class 為 intro 的 <p> 元素在線實例$("p:first")選取第一個 <p> 元素在線實例$("ul li:first")選取第一個 <ul> 元素的第一個 <li> 元素在線實例$("ul li:first-child")選取每個
  • 女子說不能找程式設計師當男友,35歲後的程式設計師就是「不可回收垃圾」
    前言:說起程式設計師,「高薪」是輸出頻率最高的一個詞彙之一,也成為程式設計師的代名詞。雖然程式設計師被定義「多金」,但是隨之的「中年危機」也是綁在了程式設計師這個身份上。隨著年齡的增長確實沒有剛進入這個行業時那麼討人「喜歡」。
  • 程式設計師面試,3個讓你加薪的小技巧!
    有效的面試技巧能讓你成功得到工作,即使你對那個領域也並不是非常熟悉。 今天就給小夥伴們梳理了3條關於程式設計師面試小技巧,奔波秋招千萬不要踩雷哦~ 01 面試的本質不是考試
  • 來看看程式設計師【離職小技巧】吧
    最近暢遊網際網路,發現一些離職小技巧,讀後,內心被深深的打動了但是細細的品過之後,發現對我們程式設計師不太適用。說的再多,工作就還是那些工作,給個響應即可。同事問你 「我發現你最近手上好像沒什麼事?」,你就直接回復 「管你屁事」,表示 Leader 分工明確,稱讚公司制度完善。好了,通用技能已經學完,接下來正式進入程式設計師離職技巧大揭秘。1. 熟練使用 rm 命令rm 命令是啥?
  • jquery mootools - CSDN
    <script type="text/javascript" src="moo1.2.4.js"></script><script type="text/javascript" src="jquery-1.4.js"></script><script type
  • 在中國,為什麼35歲會是程式設計師的一道坎?
    C++之父Bjarne Stroustrup可是在中國,為什麼35歲會被人認為是程式設計師職業的終點呢?"我不可能一輩子寫代碼"嘗試著問了幾個身邊的程式設計師朋友關於他們對於未來的職業規劃,幾乎都無一例外地表示只會在現階段從事程序開發,對於未來還是希望能夠找一份穩定踏實的工作,即使工資收入比較低。
  • jQuery - AJAX post() 方法
    DOCTYPE html><html><head><meta charset="utf-8"><title>菜鳥教程(runoob.com)</title><script src="https://cdn.staticfile.org/jquery/1.10.2
  • 從0到1~jQuery入門基礎(t286-t305)
    /js/jquery-3.5.1.js"></script> <script> $(function () { $("#wrapper").hover(function () { $(this).find(".select").css("color","blue");
  • JQuery高級
    三個預定義的值("slow","normal", "fast")或表示動滑時長的毫秒值(如1000)          2. easing:用來指定切換效果,默認是"swing",可用參數"linear" * swing: 動滑執行時效果是 先慢, 中間快, 最後又慢 * linear:動畫執行時是勻速的 3. fn
  • jquery 簡單使用和發送 ajax 異步請求
    jquery 的簡單使用。需要引入 js 文件。
  • jQuery animate動畫精講
    <head><meta charset="UTF-8"><title>HTML5學堂 - jQuery animate</title><link rel="stylesheet" href="model/css/reset.css"><script src="model/js/jquery
  • 吳洪聲十問CSDN蔣濤:年過35 歲,程式設計師們都去哪兒了?
    蔣濤:前面談到賦能開發者成長,我們把這個模式總結為「學、用、創」三個字。一方面通過內容、課程、圖書等方式幫助開發者學習,每個人都是學習者,但學並不是目的,學完要用。另一方面就是通過開發者自己創造的工具,去幫助開發者達成能力的提升,最後幫助他們創造出產品。
  • jquery 三級聯動插件專題及常見問題 - CSDN
    下面的三個框,模擬的是下拉樣式,點擊第一個有分類的選項,出現第二個下拉,依次類推,最多是三組。好了,下面我就來設計這樣的jquery插件吧。2、引入jquery,創建方法我在頁面中使用的是外部連結,https://apps.bdimg.com/libs/jquery/1.9.1/jquery.min.js 然後我們來創建一個js文件,命名為 select.js,並引入到頁面中。
  • 我是35歲程式設計師,失業後幹啥都賠錢,愁得頭髮都掉光了!
    我,35歲失業程式設計師,幹啥都賠錢,月薪3萬這樣的好日子再也沒有了!在現實中也確實如此,很多大廠大公司的程式設計師們待遇都很高,過年過節發iPhone手機那更是常態,但是在這些大廠裡,程式設計師也會迎來他們的危機:35歲程式設計師的中年危機。小王就是一位大廠的程式設計師,月薪3萬,每年還有年終獎,十三薪,一年收入超過40萬,這個收入水平以及超過了99%的打工人。
  • 案例,PHP+jquery實時顯示網站在線人數的方法
    本文實例講述了PHP+jquery實時顯示網站在線人數的方法。分享給大家供大家參考。具體分析如下:要在網頁展示在線人數最簡單的方法就是用 js 調用 php,這樣就可以顯示有多少人訪問了這個網站。如果要在頁面不刷新的情況下實時顯示,就需要 jquery ajax來實現。
  • 程式設計師職業生涯真的很短麼?35歲之前你需要做好這幾點!
    關於程式設計師「35歲的坎兒」這個話題,似乎始終縈繞在IT圈子裡揮之不去——它不僅引來程式設計師老前輩的輪番感慨,也令初入職場的IT新人倍感焦慮,更直接地體現在網際網路公司招聘簡歷表上:「僅限35歲以下」、「超過35歲不考慮」……或許以下現狀能說明一些問題:這一點其實在網際網路公司愈發明顯:隨著應用平臺激烈程度逐日攀升,公司各大小項目開發周期短、更新迭代頻次加快的需求也是日甚一日