廢話不多說,直接上乾貨。 。
具體代碼如下所示:
/*@@截取字符串長度,漢字算2個字符@@return [string]+'...'*/var subString = function(str, len) {var newLength = 0;var newStr = "";var chineseRegex = /[^/x00-/xff]/g;var singleChar = "";var strLength = str.replace(chineseRegex, "**").length;for (var i = 0; i < strLength; i++) {singleChar = str.charAt(i).toString();if (singleChar.match(chineseRegex) != null) {newLength += 2;} else {newLength++;}if (newLength > len) {break;}newStr += singleChar;}if (strLength > len) {newStr += "...";}return newStr;}--------------------------------------------------------------------------------/*@@對可見元素進行隱藏@@:visible 判斷是否為課件元素*/function close_window(){var flag=false;$(".dialog_con").each(function(){if($(this).is(":visible")){flag=true;}})if(flag==true){$(".dialog_con").hide();$(".dialogbox").hide(); }else{ window.android.callAndroidFinish();}} --------------------------------------------------------------------------------/*@@對持有不同設備的設備引用不同的樣式@@ if判斷是否某種設備*/<script type = "text/javascript" >if (/(iPad|iPod|iOS)/i.test(navigator.userAgent)) { setActiveStyleSheet("pad.css"); } else if (/(Android)/i.test(navigator.userAgent)) {setActiveStyleSheet("common.css"); }else if (/(iPhone6)/i.test(navigator.userAgent)) {setActiveStyleSheet("iphone6.css"); }function setActiveStyleSheet(filename){document.write("<link href="+filename+" rel=stylesheet>");}</script>--------------------------------------------------------------------------------/*@@回到頂部動畫@@*/$('a.top').click(function (e) {e.preventDefault();$(document.body).animate({scrollTop: 0}, 800);});--------------------------------------------------------------------------------/*@@檢查圖片是否加載完畢@@有時你或許要檢查圖片是否完全加載完畢,才能在腳本中進行後續操作:@@你也可以通過把img 標籤替換成ID 或class,來檢查特定圖片是否加載完成。 */$('img').load(function () {console.log('image load successful');});--------------------------------------------------------------------------------/*@@動修復損壞的圖片@@如果你發現自己網站的圖片鏈接掛了,一個一個替換很麻煩。這段簡單的代碼可以幫上大忙;@@即使你沒有任何損壞的鏈接,增加這段代碼也不會有什麼影響。 */$('img').on('error', function () {$(this).prop('src', 'img/broken.png');});--------------------------------------------------------------------------------/*@@Hover 上的Class 切換@@如果用戶的鼠標懸停在頁面上某個可點擊元素時,你想要改變這個元素的視覺表現。可以使用下面這段代碼,當用戶懸停時,為該元素增加一個class;當用戶鼠標離開後移除這個class:*/$('.btn').hover(function () {$(this).addClass('hover');}, function () {$(this).removeClass('hover');});-----------或---------$('.btn').hover(function () {$(this).toggleClass('hover');});--------------------------------------------------------------------------------/*@@禁用input 字段@@有時你也許想讓表單的提交按鈕或其文本輸入框變得不可用,直到用戶執行了一個特定行為(例如確認“我已經閱讀該條款” 的複選框)。增加disabled attribute 到你的input,就可以實現自己想要的效果*/$('input[type="submit"]').prop('disabled', true);$('input[type="submit"]').prop('disabled', false);--------------------------------------------------------------------------------/*@@停止鏈接加載@@有時你不想鏈接跳轉到某個頁面或重加載該頁面,而希望可以做一些其他事情,比如觸發其他腳本。下面的代碼是禁止默認行為的一個小訣竅*/$('a.no-link').click(function (e) {e.preventDefault();});--------------------------------------------------------------------------------/*@@淡入淡出/滑動開關@@淡入淡出與滑動是我們經常使用jQuery 做成的動畫效果。或許你只是想在用戶點擊某物時展現一個元素,使用fadeIn 和slideDown 都很棒。但如果想讓該元素在第一次點擊時顯現,第二次點擊時消失,下面的代碼可以很好地完成*/// Fade$('.btn').click(function () {$('.element').fadeToggle('slow');});// Toggle$('.btn').click(function () {$('.element').slideToggle('slow');});--------------------------------------------------------------------------------/*@@簡單的手風琴效果@@這是一個快速實現手風琴效果的簡單方法*/// 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;});--------------------------------------------------------------------------------/*@@使兩個Div 高度一樣@@有時你也許想讓兩個div 擁有同樣高度,不管它們裡面有什麼內容:*/$('.div').css('min-height', $('.main-div').height());該例設置了min-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());}); --------------------------------------------------------------------------------/*@@在新標籤/窗口打開站外鏈接@@在一個新標籤或者新窗口中打開外置鏈接,並確保站內鏈接會在相同的標籤或窗口中打開:*/$('a[href^="http"]').attr('target', '_blank');$('a[href^="//"]').attr('target', '_blank');$('a[href^="' + window.location.origin + '"]').attr('target', '_self');--------------------------------------------------------------------------------/*@@通過文本找到元素@@通過使用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!');}});--------------------------------------------------------------------------------/*@@Ajax 調用的錯誤處理@@當某次Ajax 調用返回404 或500 錯誤,就會執行錯誤處理。但如果沒有定義該處理,其他jQuery 代碼或許會停止工作。可以通過下面這段代碼定義一個全局Ajax 錯誤處理*/$(document).ajaxError(function (e, xhr, settings, error) {console.log(error);});--------------------------------------------------------------------------------/*@@插件鍊式調用@@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();--------------------------------------------------------------------------------/*@@Jq 遍歷全選全不選反選@@*///全選全不選$('#checkAll').click(function () {//判斷是否被選中var bischecked = $('#checkAll').is(':checked');var fruit = $('input[name="check"]');bischecked ? fruit.attr('checked', true) : fruit.attr('checked', false);});//反選遍歷checkbox 如果當前為選中就設置為不選中反之相同$("#tabVouchList tr").each(function () {if ($("td:eq(0) input[name='check']", $(this)).is(':checked')) {$(this).attr('checked', false);} else {$(this).attr('checked', true);}});以上所述是小編給大家提供的js小技巧總結,希望對大家有所幫助!