js 編程技巧

本篇用于記錄日常編程技巧,以供日后查詢
Created by RuiLin
2017/12/10

  • jQuery 遍歷對(duì)象屬性


??each() 方法為每個(gè)匹配元素執(zhí)行指定函數(shù),返回 false 可用于及早停止循環(huán)。

eg:
//index:當(dāng)前元素的index值  val:當(dāng)前元素值可用【即$(this)值】
$("li").each(function(index,val){
    alert($(this).text())
  });
//遍歷對(duì)象屬性
(function($){
 test();
 var testObj={};
  function test(){
    $.each(testObj,function(key,val){
       console.log('key'+key+'val'+val);
 })
  }
 })(jQuery)

//原生js方法
for(var key in testObj){
      console.log('key'+key+'val'+testObj[key]);
    }
  • jQuery常用插件開發(fā)模式之 $.extend() 合并defaults對(duì)象與options對(duì)象
(function($){
  function test(options){
    var defaults={
      validate: false, limit: 5, name: "foo" 
    }
    /*合并默認(rèn)值和選項(xiàng),不修改默認(rèn)對(duì)象。*/
    var settings = $.extend({},defaults, options); 
  }
  test({
    validate: true, 
    name: "bar" 
  })
 })(jQuery)
  • 防抖:防止事件頻繁觸發(fā)
/**
             * 【防抖】 防止事件連續(xù)觸發(fā)
             * @param  func :將要執(zhí)行的方法
             * @param  wait :事件觸發(fā)后,多久執(zhí)行
             * @param  immediate:是否需要立即執(zhí)行
             */
            function debounce(func, wait, immediate) {
                var timeout, result;
                return function() {
                    var self = this;
                    var argu = arguments;
                    clearTimeout(timeout);
                    if(immediate) {
                        var callNow = !timeout;
                        timeout = setTimeout(function() {
                            timeout = null;
                        }, wait)
                        if(callNow) {
                            func.call(self, argu);
                        }
                    } else {
                        timeout = setTimeout(function() {
                            result = func.call(self, argu);
                        }, wait);
                    }

                }
            }

            function test(argu) {
                console.log(this);
                console.log(argu[0].type);
            }

            $(function() {
                $("#js-test").click(debounce(test, 1000, true));
            })
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容