引子
jQuery的存在,讓學習前端開發的人感到前端越來越容易入門了,用簡單的幾行程式碼就可以實現需求,但是,你真的會用jQuery麼,當程式碼運行後無法看到自己預期的效果,是不是覺得jQuery出了問題,其實,問題還是出在了自己會不會用上面。以下列舉一些開發中常遇到的應用實例,發現另一個不同的jQuery世界。
回到頂部按鈕
利用jQuery裡的animate和scrollTop方法,你便不需要使用插件來創建簡單的滾動到頂部動畫。
$('.top').click(function (e) { e.preventDefault(); $('html, body').animate({scrollTop: 0}, 800); });
透過scrollTop的值來改變你想要滾動到的位置。其實你就是做了:在接下來的800毫秒中讓頁面滾動,直到它滾動到文件的頂部。
圖片預先載入
如果你的網頁使用了很多隱藏圖片檔案(例如:滑鼠懸停展示的圖片),那麼圖片的預先載入是有意義的:
$.preloadImages = function () { for (var i = 0; i < arguments.length; i++) { $('<img alt="jQuery常用的一些技巧總結_jquery" >').attr('src', arguments[i]); } }; $.preloadImages('img/hover-on.png', 'img/hover-off.png');<br />
判斷圖片是否已載入
有時候你可能需要檢查圖片是否已經載入完成,以便於可以繼續執行對應的js程式碼:
$('img').load(function () { console.log('image load successful'); });
曾經遇到的使用場景:有些元素需要以圖片的實際尺寸來設定其大小,以絕對佈置方式放置。元素的大小設定可以在圖片載入完成後計算。
自動修補破損影像
如果你碰巧發現在你的網站上發現破損的圖像鏈接,一個個去替代他們是痛苦的。這個簡單的程式碼可以節省很多的麻煩:
$('img').on('error', function () { if(!$(this).hasClass('broken-image')) { $(this).prop('src', 'img/broken.png').addClass('broken-image'); } });
即使你沒有任何斷開的鏈接,加入這代碼也不會有任何影響。
停用輸入
有時你可能需要用表單的提交按鈕或某個輸入框直到使用者執行了某個動作(例如:檢查「我已閱讀條款」複選框)。在你的輸入框上設定disabled屬性,然後當你需要的時候啟用該屬性:
$('input[type="submit"]').prop('disabled', true);
你需要做的只是需要在輸入框上再次運行prop方法,但設定的被禁用值是false:
$('input[type="submit"]').prop('disabled', false);
對地不了解prop函數的jQuery開發者來說,最常使用的是attr函數,可能開發很多程式都沒有發現什麼問題,但是,在開發例如checkbox、radio、select時,會發現使用attr無法讓屬性生效,以為是jQuery的bug,下面來說說attr和prop的使用建議:
遇到要取得或設定checked,selected,readonly和disabled等屬性時,用prop方法顯然比較好
使兩個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()); });
依文字取得元素
透過jQuery中的contains()選擇器,你能找到一個元素內的文字內容。如果文字不存在,則這個元素將被隱藏:
var search = $('#search').val(); $('div:not(:contains("' + search + '"))').hide();
可見變化的觸發
當使用者不再聚焦或重新聚焦一個標籤時觸發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!'); } });

C 和JavaScript通過WebAssembly實現互操作性。 1)C 代碼編譯成WebAssembly模塊,引入到JavaScript環境中,增強計算能力。 2)在遊戲開發中,C 處理物理引擎和圖形渲染,JavaScript負責遊戲邏輯和用戶界面。

JavaScript在網站、移動應用、桌面應用和服務器端編程中均有廣泛應用。 1)在網站開發中,JavaScript與HTML、CSS一起操作DOM,實現動態效果,並支持如jQuery、React等框架。 2)通過ReactNative和Ionic,JavaScript用於開發跨平台移動應用。 3)Electron框架使JavaScript能構建桌面應用。 4)Node.js讓JavaScript在服務器端運行,支持高並發請求。

Python更適合數據科學和自動化,JavaScript更適合前端和全棧開發。 1.Python在數據科學和機器學習中表現出色,使用NumPy、Pandas等庫進行數據處理和建模。 2.Python在自動化和腳本編寫方面簡潔高效。 3.JavaScript在前端開發中不可或缺,用於構建動態網頁和單頁面應用。 4.JavaScript通過Node.js在後端開發中發揮作用,支持全棧開發。

C和C 在JavaScript引擎中扮演了至关重要的角色,主要用于实现解释器和JIT编译器。1)C 用于解析JavaScript源码并生成抽象语法树。2)C 负责生成和执行字节码。3)C 实现JIT编译器,在运行时优化和编译热点代码,显著提高JavaScript的执行效率。

JavaScript在現實世界中的應用包括前端和後端開發。 1)通過構建TODO列表應用展示前端應用,涉及DOM操作和事件處理。 2)通過Node.js和Express構建RESTfulAPI展示後端應用。

JavaScript在Web開發中的主要用途包括客戶端交互、表單驗證和異步通信。 1)通過DOM操作實現動態內容更新和用戶交互;2)在用戶提交數據前進行客戶端驗證,提高用戶體驗;3)通過AJAX技術實現與服務器的無刷新通信。

理解JavaScript引擎內部工作原理對開發者重要,因為它能幫助編寫更高效的代碼並理解性能瓶頸和優化策略。 1)引擎的工作流程包括解析、編譯和執行三個階段;2)執行過程中,引擎會進行動態優化,如內聯緩存和隱藏類;3)最佳實踐包括避免全局變量、優化循環、使用const和let,以及避免過度使用閉包。

Python更適合初學者,學習曲線平緩,語法簡潔;JavaScript適合前端開發,學習曲線較陡,語法靈活。 1.Python語法直觀,適用於數據科學和後端開發。 2.JavaScript靈活,廣泛用於前端和服務器端編程。


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

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

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

mPDF
mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),

SublimeText3 英文版
推薦:為Win版本,支援程式碼提示!

WebStorm Mac版
好用的JavaScript開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

SublimeText3 Linux新版
SublimeText3 Linux最新版