美文网首页
js 编程技巧

js 编程技巧

作者: 乞力马扎罗的雪_ | 来源:发表于2017-12-10 23:06 被阅读0次

本篇用于记录日常编程技巧,以供日后查询
Created by RuiLin
2017/12/10

  • jQuery 遍历对象属性


  each() 方法为每个匹配元素执行指定函数,返回 false 可用于及早停止循环。

eg:
//index:当前元素的index值  val:当前元素值可用【即$(this)值】
$("li").each(function(index,val){
    alert($(this).text())
  });
//遍历对象属性
(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常用插件开发模式之 $.extend() 合并defaults对象与options对象
(function($){
  function test(options){
    var defaults={
      validate: false, limit: 5, name: "foo" 
    }
    /*合并默认值和选项,不修改默认对象。*/
    var settings = $.extend({},defaults, options); 
  }
  test({
    validate: true, 
    name: "bar" 
  })
 })(jQuery)
  • 防抖:防止事件频繁触发
/**
             * 【防抖】 防止事件连续触发
             * @param  func :将要执行的方法
             * @param  wait :事件触发后,多久执行
             * @param  immediate:是否需要立即执行
             */
            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));
            })

相关文章

网友评论

      本文标题:js 编程技巧

      本文链接:https://www.haomeiwen.com/subject/bbqbixtx.html