zoukankan      html  css  js  c++  java
  • js常用代码整理

    引用js

    <script type="text/javascript" src="js/jquery-1.11.2.min.js"></script>

    Ajax请求

    例子1$.ajax({

           type:"post",

           url:"loggingIos_findUserLoggingYears.action",

           data:{},

           dataType:"json",

           success:function(data){

          

           },

           error:function(){

          

           }

           });

    例子2$.ajax({

         type:"post",

         url:"loggingIos_prePhoto.action",

         data:{"PrevPhotosParams":JSON.stringify(PrevPhotosParams)},

         dataType:"html",

         //contentType: "application/html",

         success:function(html){

         $("#disWin").html(html);

    $("#disWin").show(200,function() {

    scrollTop = $("body").scrollTop(); // body设置为fixed之后会飘到顶部,所以要动态计算当前用户所在高度

    scrollTop = scrollTop * (-1);

    $("body").css({"top": scrollTop, "overflow": "hidden", "position": "fixed"});

    });

         },

         error:function(){}

         });

    $("#back").click(function() {

    $("#disWin").hide(200);

    $("body").css({"top": "auto", "overflow": "auto", "position": "static"});

    scrollTop = scrollTop * (-1);

    window.scrollTo(0, scrollTop);

    setTimeout(function() {

    $("#disWin").empty();

    }, 200);

    });

    例子3$.ajax({

         type: "POST",

         url: "loggingIos!readSearLogging.action",

         data: {

         },

         dataType: "json",

         cache: false,

         async: false,

         traditional: true,

         success: function(resultData) {

         },

    error:function(){

    }

        });

    添加事件/删除事件

    <div class=”add-btn” onclick=”uploadStar()” >测试</div>

    //添加上传按钮事件

    $(".add-btn").attr("onclick","uploadStar()");

    //移除上传按钮事件

    $(".add-btn").removeAttr("onclick");

    //添加上传按钮事件

    if(typeof($(".add-btn").attr("onclick")) == "undefined"){

         $(".add-btn").attr("onclick","uploadStar()");

    }

    事件on/bind/unbind的使用与传参

    <div class="test">test</div>

        <div class="del">删除事件</div>

        <div class="add">添加事件</div>

        <script type="text/javascript">

        

         $(function(){

         function fun(){

         alert("test");

         }

         //bind on 都可以

         //$(".test").on("click",fun);

         $(".test").bind("click",fun);

        

         $(".del").bind("click",function(){

         $(".test").unbind("click",fun);

         alert("删除成功");

         });

        

         $(".add").bind("click",function(){

         $(".test").bind("click",fun);

         alert("添加成功");

         });

         });

    </script>

    $(".loadingFlower").on("click",'',{name:"123",id:"234",tel:"345"},callback)
     
    function callback(event){
       console.log(event.data.name);    //参数1 =>123
       console.log(event.data.id);      //参数2 =>234
       console.log(event.data.tel);     //参数3 =>345
    }

    Onoff的高级应用

    jquery:$.on(event,[selector],[data],fn)

    2014-04-15 18:10 435人阅读 评论(1) 收藏 举报

     分类:

    jQuery7 

    1$.on()

    在选择元素上绑定一个或多个事件的事件处理函数。

    1on()方法绑定事件处理程序到当前jQuery对象中的元素。不再推荐使用.bind(),.delegate(),.live()

    2)删除.on()事件:.off()

    3)要附加一个事件,只运行一次,然后删除自己:.one()

     

    2$.on(events,[selector],[data],fn)

    events:一个或多个用空格风格的事件类型和可选的命名空间。如:click keydown.myPlugin

    selector:一个选择器字符串,用于过滤选定的元素。该选择器的后裔元素将调用处理程序。如果为空或被忽略,事件总是触发。

    data:事件触发时要传递event.data给事件处理函数

    fn:该事件触发时执行的函数。false值一个可以做一个函数的简写,返回false

     

    如:

    (1)

    $.on("click",function(){});

     

    (2)

    function handle(){}

    $.on("click",handle)

     

    (3)取消默认操作

    $.on("submit",false)

    $.on("submit",function(event){event.preventDefault();});

    $.on("submit",function(event){event.stopPropagation();});

    例子:ajax分页请求数据刷新

    Id = bodyInfo是页面ajax请求数据的框div

    .starlog-single .single-btn .close ajax请求后在js端重新绘制的html

        $('.g-wrap #bodyInfo').on('click', '.starlog-single .single-btn .close', function() {

            var parli = $(this).parents('li');

            $(this).toggleClass('hover');

            parli.find('.starlog-bd').slideToggle();

            return false;

        });

    jqueryclosest方法和parents方法的区别

    今天第一次看到closest方法,以前也从来没用过。

    该方法从元素本身开始往上查找,返回最近的匹配的祖先元素。

    1closest查找开始于自身,parents开始于元素父级

    2closest向上查找,知道找到一个匹配就停止查找,parents一直查找到根元素,并将匹配的元素加入集合

    3closest返回的是包含零个或一个元素的jquery对象,parents返回的是包含零个或一个或多个元素的jquery对象

    点击非筛选区域,隐藏筛选条件

        /**

     * @description 日志列表页面,点击非筛选区域,隐藏筛选条件

     * @page 使用页面(loggNewSear.jsp

     * @path 使用页面绝对路径(/logging/loggNewSear.jsp

     * @author maohuidong

     * @date 2017-04-07

     */

     $(document).on("click",function(e){

      if($(e.target).closest('.screen').length == 0){

      $(".screen .sereenyh").removeClass("open");

      $(".screen .screen-bd").slideUp();

      }

     });

    预运行函数

    $(document).ready(function() {

    }

    //var var1 = $("#content").height();

    var var3 = $("#content").innerHeight();//元素内部区域高度,忽略paddingborder

    // var var3 = $("#content").outerHeight();//忽略边框

    // alert(var3);

    // document .getElementById("show").display = "block";

    $(".energy-txtshow .txt").css('height','100');

    $("#show .btn").css('concent','查看全文');

    $("#show").show();

    $("#hide").hide();

    $("#collect").toggleClass('hover',true);

    $(".energy-txtshow .txt").animate({height:var3});

    //$(".energy-txtshow .txt").slideToggle();

    //$(".energy-txtshow .txt").fadeToggle();

            // $(".energy-txtshow .txt").fadeToggle("slow");

    //$(".energy-txtshow .txt").slideToggle() ;

    var themeId =  $("#theme").find("span.hover").find('input').val();

    $("#disWin").html(resultData);

    $("#disWin").show(2000);

    setTimeout(function() {

    $("body").attr("style", "overflow: hidden;");

    $("div#bodyptb").attr("style", "overflow: auto;");

    }, 2000);

    setTimeout(function() {

    $("body").attr("style", "overflow: hidden;");

    $("div#bodyptb").attr("style", "overflow: auto;");

    }, 2000);

    var isSafari= u.indexOf("Safari") > 0 && u.indexOf("Chrome") < 0 ? true : false;

    var titleLineHeight = parseFloat($title.eq(0).css('line-height'));

    var isIOS = u.match(/iPhone|iPad|iPod/i) ? true : false;

    var $span = $("span", $(this)).eq(1);

                    var txt = $span.text();

                    // alert("txt="+txt);

                    var spanHeight = $span.css({'display':'block'}).height();

    articalContent = $.trim(articalContent);

      var result = $.isEmptyObject(data);

            if (result) {

                $li = $('#searchTesult').find('div[data-is-complete="false"]');

            } else {

                $li = $('#searchTesult').append(data).find('div[data-is-complete="false"]');

            }

    $('.screen-bd .module .nlscreen').eq(0).addClass('active').siblings('.nlscreen').removeClass('active');

    $('.scroll-load').remove();

    parli.find('.starlog-bd').slideToggle();

      $('.user-screen .screen-bd').slideUp();

    $(this).parents('li').remove();

    $(this).addClass('hover').siblings().removeClass('hover');

      var data = '<li href="video-look.html"><a><img src="uploads/small-img.jpg" width="220" height="220" alt=""><span class="bg"></span><span class="speed bgicon">20%</span></a><span class="del bgicon"></span></li>';

            $('.three-plate-form .edit-list .add-btn').before(data);

    $(".page-num").html(str);

    var text = $(this).text();

    $('html,body,#bodyptb').animate({scrollTop:$('#newComment').offset().top - 0.5},'slow');

    $(this).parents('li').remove();

    <!-- 提交表单 -->

           <a href="javascript:void(0)" onclick="document.forms[0].submit()">

            <img src="${pageContext.request.contextPath}/images/button/save.gif" />

           </a>

           <!-- 执行js,进行返回 -->

           <a href="javascript:void(0)" onclick="window.history.go(-1)"><img src="${pageContext.request.contextPath}/images/button/tuihui.gif" /></a>

    JavaScript数组Array对象增加和删除元素方法总结

    pop 方法

    移除数组中的最后一个元素并返回该元素。
    arrayObj.pop( )
    必选的 arrayObj 引用是一个 Array 对象。
    说明
    如果该数组为空,那么将返回 undefined

    shift 方法

    移除数组中的第一个元素并返回该元素。
    arrayObj.shift( )
    必选的 arrayObj 引用是一个 Array 对象。
    说明
    shift 方法可移除数组中的第一个元素并返回该元素。

    复制代码代码如下:

    var arr = new Array(0,1,2,3,4);  
    var remove = arr.pop();  
    alert(remove);  
    alert(arr.length);


     
    移除并返回最后一个元素,先弹出 4 ,然后提示目前数组长度 弹出 4
     
    push 方法

    将新元素添加到一个数组中,并返回数组的新长度值。
    arrayObj.push([item1 [item2 [. . . [itemN ]]]])
    参数
    arrayObj
    必选项。一个 Array 对象。
    item, item2,. . . itemN
    可选项。该 Array 的新元素。
    说明
    push 方法将以新元素出现的顺序添加这些元素。如果参数之一为数组,那么该数组将作为单个元素添加到数组中。如果要合并两个或多个数组中的元素,请使用 concat 方法。

    复制代码代码如下:

    var arr = new Array(0,1,2,3,4);  
    // 参数是一个或多个  
    var len = arr.push(5,6);  
    //len = arr.push(7);  
    for(var i=0;i<arr.length;i++){  
        alert(arr[i]);  
    }


     
    可以一次性增加多个进去,也可以增加一个,返回数组目前长度。变了打印数组内容观察变化!

    splice 方法

    从一个数组中移除一个或多个元素,如果必要,在所移除元素的位置上插入新元素,返回所移除的元素。
    arrayObj.splice(start, deleteCount, [item1[, item2[, . . . [,itemN]]]])
    参数
    arrayObj
    必选项。一个 Array 对象。
    start
    必选项。指定从数组中移除元素的开始位置,这个位置是从 0 开始计算的。
    deleteCount
    必选项。要移除的元素的个数。
    item1, item2,. . .,itemN
    必选项。要在所移除元素的位置上插入的新元素。
    说明
    splice 方法可以移除从 start 位置开始的指定个数的元素并插入新元素,从而修改 arrayObj。返回值是一个由所移除的元素组成的新 Array 对象。
     

    复制代码代码如下:

    var arr = new Array(0,1,2,3,4);  
    // 删除从2开始的两个元素,位置从0开始  
    // 返回移除元素的数组  
    var reArr = arr.splice(2,2);  
    // 可以在移除元素的位置替换新的元素进去  
    //只是从移除开始位置进行增加新元素,如果你移除两个元素,你完全可以增加10个新元素进去  
    //var reArr = arr.splice(2,2,6,7,8,9);  
    for(var i=0;i<arr.length;i++){  
        alert(arr[i]);  
    }


     
    如果你不想增加新的元素进去,那么不要传递第三个参数即可!

    concat 方法 (Array)

    返回一个新数组,这个新数组是由两个或更多数组组合而成的。
    array1.concat([item1[, item2[, . . . [, itemN]]]])
    参数
    array1 
    必选项。其他所有数组要进行连接的 Array 对象。 
    item1,. . ., itemN
    可选项。要连接到 array1 末尾的其他项目。
    说明
    concat 方法返回一个 Array 对象,其中包含了 array1 和提供的任意其他项目的连接。
    要加的项目(item1 … itemN)会按照从左到右的顺序添加到数组。如果某一项为数组,那么添加其内容到 array1 的末尾。如果该项目不是数组,就将其作为单个的数组元素添加到数组的末尾。

    以下为从源数组复制元素到结果数组:

    对于从正被连接到新数组的数组中复制的对象参数,复制后仍然指向相同的对象。不论新数组和源数组中哪一个有改变,都将引起另一个的改变。 
    对于连接到新数组的数值或字符串,只复制其值。一个数组中值有改变并不影响另一个数组中的值。

    复制代码代码如下:

    var arr = new Array(0,1);  
    var arr2 = new  Array(3,4);  
    var arr = arr.concat(arr2);  
    for(var i=0;i<arr.length;i++){  
        alert(arr[i]);  
    }


     
    方法的作用是将arr2中的元素复制到了arr中!

    5个数组Array方法: indexOffilterforEachmapreduce使用实例

    ECMAScript5标准发布于2009123日,它带来了一些新的,改善现有的Array数组操作的方法。然而,这些新奇的数组方法并没有真正流行起来的,因为当时市场上缺乏支持ES5的浏览器。

    Array "Extras"

    没有人怀疑这些方法的实用性,但写polyfillPS:兼容旧版浏览器的插件)对他们来说是不值得的。它把必须实现变成了最好实现。有人居然将这些数组方法称之为Array "Extras"。哎!

    但是,时代在变化。如果你看看Github上流行的开源JS项目,你会发现趋势正在转变。大家都想削减大量(第三方库)的依赖,仅用本地代码来实现。

    好了,让我们开始吧。

    我的5个数组

    ES5中,一共有9Array方法 http://kangax.github.io/compat-table/es5/

    * 九个方法

    Array.prototype.indexOf
    Array.prototype.lastIndexOf
    Array.prototype.every
    Array.prototype.some
    Array.prototype.forEach
    Array.prototype.map
    Array.prototype.filter
    Array.prototype.reduce
    Array.prototype.reduceRight

    我将挑选5种方法,我个人认为是最有用的,很多开发者都会碰到。

    1) indexOf

    indexOf()方法返回在该数组中第一个找到的元素位置,如果它不存在则返回-1

    不使用indexOf

    ?

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    var arr = ['apple','orange','pear'],

    found = false;

     

    for(var i= 0, l = arr.length; i< l; i++){

    if(arr[i] === 'orange'){

    found = true;

    }

    }

     

    console.log("found:",found);

    使用后

    ?

    1

    2

    3

    var arr = ['apple','orange','pear'];

     

    console.log("found:", arr.indexOf("orange") != -1);

    2) filter

    filter()方法创建一个新的匹配过滤条件的数组。

    不用 filter()

    ?

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    16

    var arr = [

      {"name":"apple", "count": 2},

      {"name":"orange", "count": 5},

      {"name":"pear", "count": 3},

      {"name":"orange", "count": 16},

    ];

       

    var newArr = [];

     

    for(var i= 0, l = arr.length; i< l; i++){

      if(arr[i].name === "orange" ){

    newArr.push(arr[i]);

    }

    }

     

    console.log("Filter results:",newArr);


    用了 filter():

    ?

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    var arr = [

      {"name":"apple", "count": 2},

      {"name":"orange", "count": 5},

      {"name":"pear", "count": 3},

      {"name":"orange", "count": 16},

    ];

       

    var newArr = arr.filter(function(item){

      return item.name === "orange";

    });

     

     

    console.log("Filter results:",newArr);

    3) forEach()

    forEach为每个元素执行对应的方法

    ?

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    var arr = [1,2,3,4,5,6,7,8];

     

    // Uses the usual "for" loop to iterate

    for(var i= 0, l = arr.length; i< l; i++){

    console.log(arr[i]);

    }

     

    console.log("========================");

     

    //Uses forEach to iterate

    arr.forEach(function(item,index){

    console.log(item);

    });

    forEach是用来替换for循环的

    4) map()

    map()对数组的每个元素进行一定操作(映射)后,会返回一个新的数组,

    不使用map

    ?

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    16

    var oldArr = [{first_name:"Colin",last_name:"Toh"},{first_name:"Addy",last_name:"Osmani"},{first_name:"Yehuda",last_name:"Katz"}];

     

    function getNewArr(){

       

      var newArr = [];

       

      for(var i= 0, l = oldArr.length; i< l; i++){

        var item = oldArr[i];

        item.full_name = [item.first_name,item.last_name].join(" ");

        newArr[i] = item;

      }

       

      return newArr;

    }

     

    console.log(getNewArr());

    使用map

    ?

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    var oldArr = [{first_name:"Colin",last_name:"Toh"},{first_name:"Addy",last_name:"Osmani"},{first_name:"Yehuda",last_name:"Katz"}];

     

    function getNewArr(){

         

      return oldArr.map(function(item,index){

        item.full_name = [item.first_name,item.last_name].join(" ");

        return item;

      });

       

    }

     

    console.log(getNewArr());


    map()是处理服务器返回数据时是一个非常实用的函数。

    5) reduce()

    reduce()可以实现一个累加器的功能,将数组的每个值(从左到右)将其降低到一个值。

    说实话刚开始理解这句话有点难度,它太抽象了。

    场景: 统计一个数组中有多少个不重复的单词

    不使用reduce

    ?

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    var arr = ["apple","orange","apple","orange","pear","orange"];

     

    function getWordCnt(){

      var obj = {};

       

      for(var i= 0, l = arr.length; i< l; i++){

        var item = arr[i];

        obj[item] = (obj[item] +1 ) || 1;

      }

       

      return obj;

    }

     

    console.log(getWordCnt());

    使用reduce()

    ?

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    var arr = ["apple","orange","apple","orange","pear","orange"];

     

    function getWordCnt(){

      return arr.reduce(function(prev,next){

        prev[next] = (prev[next] + 1) || 1;

        return prev;

      },{});

    }

     

    console.log(getWordCnt());

    让我先解释一下我自己对reduce的理解。reduce(callback, initialValue)会传入两个变量。回调函数(callback)和初始值(initialValue)。假设函数它有个传入参数,prevnext,indexarrayprevnext你是必须要了解的。

    一般来讲prev是从数组中第一个元素开始的,next是第二个元素。但是当你传入初始值(initialValue)后,第一个prev将是initivalValuenext将是数组中的第一个元素。

    比如:

    ?

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    16

    17

    18

    19

    20

    21

    22

    23

    24

    25

    26

    27

    /*

    * 二者的区别,在console中运行一下即可知晓

    */

     

    var arr = ["apple","orange"];

     

    function noPassValue(){

      return arr.reduce(function(prev,next){

        console.log("prev:",prev);

        console.log("next:",next);

         

        return prev + " " +next;

      });

    }

    function passValue(){

      return arr.reduce(function(prev,next){

        console.log("prev:",prev);

        console.log("next:",next);

         

        prev[next] = 1;

        return prev;

      },{});

    }

     

    console.log("No Additional parameter:",noPassValue());

    console.log("----------------");

    console.log("With {} as an additional parameter:",passValue());

    最后一种方式:删除数组的某一个元素

    Array.prototype.del = function(filter){

      var idx = filter;

      if(typeof filter == 'function'){

        for(var i=0;i<this.length;i++){

          if(filter(this[i],i)) idx = i;

        }

      }

      this.splice(idx,1)

    }

    var ary=[{id:1,name:"b"},{id:2,name:"b"}];

    var delid = 2;

    ary.del(function(obj){

      return obj.id == delid;

    })

          

    获取对象成员数量

    Object.getOwnPropertyNames(obj).length

    数组转字符串

    需要将数组元素用某个字符连接成字符串,示例代码如下:

    ?

    1

    2

    3

    var a, b;

    a = new Array(0,1,2,3,4);

    b = a.join("-");

    字符串转数组

    实现方法为将字符串按某个字符切割成若干个字符串,并以数组形式返回,示例代码如下:

    ?

    1

    2

    var s = "abc,abcd,aaa";

    ss = s.split(",");// 在每个逗号(,)处进行分解。

    JSON字符串,JSON数组,JSON对象的相互转换

    json字符串转化成json对象

    // jquery的方法

    var jsonObj = $.parseJSON(jsonStr)

    //js 的方法

    var jsonObj =  JSON.parse(jsonStr)

    json对象转化成json字符串

    //js方法

    var jsonStr1 = JSON.stringify(jsonObj)

    例如

    例如:

    <script type="text/javascript">

            var jsonStr = '[{"id":"01","open":false,"pId":"0","name":"A部门"},{"id":"01","open":false,"pId":"0","name":"A部门"},{"id":"011","open":false,"pId":"01","name":"A部门"},{"id":"03","open":false,"pId":"0","name":"A部门"},{"id":"04","open":false,"pId":"0","name":"A部门"}, {"id":"05","open":false,"pId":"0","name":"A部门"}, {"id":"06","open":false,"pId":"0","name":"A部门"}]';

          //  var jsonObj = $.parseJSON(jsonStr);

          var jsonObj =  JSON.parse(jsonStr)

            console.log(jsonObj)

         var jsonStr1 = JSON.stringify(jsonObj)

         console.log(jsonStr1+"jsonStr1")

        </script>

    json对象转化成数组

    <script type="text/javascript">

            var jsonStr = '[{"id":"01","open":false,"pId":"0","name":"A部门"},{"id":"01","open":false,"pId":"0","name":"A部门"},{"id":"011","open":false,"pId":"01","name":"A部门"},{"id":"03","open":false,"pId":"0","name":"A部门"},{"id":"04","open":false,"pId":"0","name":"A部门"}, {"id":"05","open":false,"pId":"0","name":"A部门"}, {"id":"06","open":false,"pId":"0","name":"A部门"}]';

          //  var jsonObj = $.parseJSON(jsonStr);

          var jsonObj =  JSON.parse(jsonStr)

            console.log(jsonObj)

         var jsonStr1 = JSON.stringify(jsonObj)

         console.log(jsonStr1+"jsonStr1")

         var jsonArr = [];

         for(var i =0 ;i < jsonObj.length;i++){

                jsonArr[i] = jsonObj[i];

         }

         console.log(typeof(jsonArr))

        </script>

    改变窗口大小事件

    $(window).resize(function() {

            imglook();

        })

    时间事件

    clearTimeout(signtime);   

    signtime = setTimeout(function(){

    $('.dialog-mask').hide();

    $('.czs').hide("slow");

    },3000)

    改变事件

    //视频添加

        $('#btnFileVideo').change(function(){

            var data = '<li href="video-look.html"><a><img src="uploads/small-img.jpg" width="220" height="220" alt=""><span class="bg"></span><span class="speed bgicon">20%</span></a><span class="del bgicon"></span></li>';

            $('.three-plate-form .edit-list .add-btn').before(data);

            videonum();

            var url = $('.edit-list').attr('data-url');

            setTimeout(function(){

                $('.edvideo a').attr('href',url);

                $('.edvideo .bg').remove();

                $('.edvideo .speed').remove();

                $('.edvideo a').append('<span class="vi bgicon"></span>');

            },5000)

    })

    Tab切换

       //tab切换

        function tabSwitch(tabHd,tabBd){

            tabHd.each(function(index){

                $this=$(this);

                $this.click(function(){

                    $(this).addClass('hover').siblings().removeClass('hover');

                    tabBd.eq(index).addClass('active').siblings().removeClass('active');

                });

            });

        }

        tabSwitch($('.energy-tab span'),$('.energy-comment .comment'));

        tabSwitch($('.news-tab a'),$('.news-list'));

    tabSwitch($('.user-tabcart a'),$('.user-moneylibox'));

    注册事件

        $('.login .eye.close').on('click',function(){

            if($(this).hasClass('close')){

                $(this).removeClass('close');

                $('.item input').attr("type","text");

            }

            else{

               $(this).addClass('close');

               $('.item input').attr("type","password")

            }

        });

    Each循环

    tabHd.each(function(index){

                $this=$(this);

                $this.click(function(){

                    $(this).addClass('hover').siblings().removeClass('hover');

                    tabBd.eq(index).addClass('active').siblings().removeClass('active');

                });

            });

    秒转换为正常时间

    function secondsToTime(secs) { // we will use this function to convert seconds in normal time format

    //alert("secondsToTime");

        var hr = Math.floor(secs / 3600);

        var min = Math.floor((secs - (hr * 3600))/60);

        var sec = Math.floor(secs - (hr * 3600) -  (min * 60));

        if (hr < 10) {hr = "0" + hr; }

        if (min < 10) {min = "0" + min;}

        if (sec < 10) {sec = "0" + sec;}

        if (hr) {hr = "00";}

        return hr + ':' + min + ':' + sec;

    };

    往下滑动加载数据

    /**

     * @description 往下滑动加载数据

     * @page 使用页面(logging.jsp

     * @path 使用页面绝对路径(/logging/logging.jsp

     * @author senfy

     * @date 2016-09-20

     */

    $(window).scroll(function() {

    var str = '<div class="scroll-load"><em></em>数据加载中...</div>';

    var scrollTop = $(this).scrollTop();

    // alert("scrollTop="+scrollTop);

    var scrollHeight = $(document).height();

    // alert("scrollHeight="+scrollHeight);

    var windowHeight = $(this).height();

    // alert("windowHeight="+windowHeight);

    if ((scrollTop + windowHeight) == scrollHeight) {

    // alert("===="+$('.scroll-load').length);

    pageSize = 10;

    if ($('.scroll-load').length == 0 && $('.comment-item').length >= pageSize) {

    if(flage != 3){//热门评论,只显示前20

    pageSize = 10;

    currentPage += 1;

    $('body').append(str);

    setTimeout(function() {

    $('.scroll-load').remove();

        readComment(pageSize, currentPage,null); // 调用获取日志记录数据方法

    }, 2000);

    }else{

    if(currentPage < 2){

    currentPage += 1;

    $('body').append(str);

    setTimeout(function() {

    $('.scroll-load').remove();

         readComment(pageSize, currentPage,null); // 调用获取日志记录数据方法

    }, 2000);

    }

    }

    }

    }

    });

    /**

     * @description 分页获取日志记录数据

     * @page 使用页面(logging.jsp

     * @path 使用页面绝对路径(/logging/logging.jsp

     * @author senfy

     * @date 2016-08-17

     */

    function readComment(pageSize, currentPage,cle) {

    var commentEnergyId = $("#commentEnergyId").val();

    //alert("flage="+flage);

        // alert("commentEnergyId="+commentEnergyId);

    $.ajax({

    type: "POST",

    url: "energy_readEnergy.action",

    data: {

    "energy.id" : commentEnergyId,

    "pageSize" : pageSize,

    "currentPage" : currentPage,

    "flage" : flage

    // "commentType" : commentType

    },

    dataType: "json",

    cache: false,

    async: false,

    success: function(resultData) {

    //alert("resultData="+resultData);

    if (resultData.dateJson.length <= 0) {

    //alert("if");

    /*

    if(cle != null && cle != ''){

    $("#bodyInfo").empty();

    html = "";

    if(cle == 1){

    html += "<div class='comment-title'>全部评论</div>";

    }else if(cle == 2){

    html += "<div class='comment-title'>精品评论</div>";

    }else if(cle == 3){

    html += "<div class='comment-title'>热门评论</div>";

    }else if(cle == 4){

    html += "<div class='comment-title'>最新评论</div>";

    }

    $("#bodyInfo").append(html);

    }

    */

    if(currentPage != 1){

    var str = '<div class="scroll-load">无更多数据</div>';

    $('body').append(str);

    setTimeout(function() {

    $('.scroll-load').remove();

    }, 2000);

    }else{

    appendTip(cle);

    }

    } else {

    //alert("else");

    //analDate(resultData); // 调用解析日期数据方法

    analComment(resultData,cle); // 调用解析日志记录数据方法

    }

    }

    });

    }

    Swiper使用

    if($('.hbanner').length > 0){

            var hbanner = new Swiper('.hbanner .swiper-container', {

                loop:true,

                autoplay:5000,

                pagination: '.hbanner .swiper-pagination',

                paginationClickable: true

            });

        }

        //广播

        var sup   = $('.h-notice-list'),

            items = sup.children(),

            first = items.eq(0);

    H5文件上传代码

    function bytesToSize(bytes) {

    //alert("bytesToSize");

        var sizes = ['Bytes', 'KB', 'MB'];

        if (bytes == 0) return 'n/a';

        var i = parseInt(Math.floor(Math.log(bytes) / Math.log(1024)));

        return (bytes / Math.pow(1024, i)).toFixed(1) + ' ' + sizes[i];

    };

    function fnameSelected() {

    //alert("fnameSelected");

        // get selected file element

        var oFile = document.getElementById('image_file').files[0];

        document.getElementById('Filename').value = oFile.name;

    };

    function fileSelected() {

    //alert("fileSelected");

    //alert(url);

        // hide different warnings

        document.getElementById('upload_response').style.display = 'none';

        document.getElementById('error').style.display = 'none';

        document.getElementById('error2').style.display = 'none';

        document.getElementById('abort').style.display = 'none';

        document.getElementById('warnsize').style.display = 'none';

        // get selected file element

        var oFile = document.getElementById('Filedata').files[0];

        // filter for image files

        /*var rFilter = /^(image/bmp|image/gif|image/jpeg|image/png|image/tiff)$/i;

        if (! rFilter.test(oFile.type)) {

            document.getElementById('error').style.display = 'block';

            return;

        }*/

        // little test for filesize

        /*if (oFile.size > iMaxFilesize) {

            document.getElementById('warnsize').style.display = 'block';

            return;

        }*/

        // get preview element

        var oImage = document.getElementById('preview');

        // prepare HTML5 FileReader

        var oReader = new FileReader();

            oReader.onload = function(e){

            // e.target.result contains the DataURL which we will use as a source of the image

            oImage.src = e.target.result;

            oImage.onload = function () { // binding onload event

                // we are going to display some custom image information here

                sResultFileSize = bytesToSize(oFile.size);

                document.getElementById('fileinfo').style.display = 'block';

                document.getElementById('filename').innerHTML = 'Name: ' + oFile.name;

                document.getElementById('filesize').innerHTML = 'Size: ' + sResultFileSize;

                document.getElementById('filetype').innerHTML = 'Type: ' + oFile.type;

                document.getElementById('filedim').innerHTML = 'Dimension: ' + oImage.naturalWidth + ' x ' + oImage.naturalHeight;

            };

        };

        document.getElementById('Filename').value = oFile.name;

        document.getElementById('Filesize').value = oFile.size;

        // read selected file as DataURL

        oReader.readAsDataURL(oFile);

    }

    function startUploading() {

    //alert("startUploading");

        // cleanup all temp states

        iPreviousBytesLoaded = 0;

        document.getElementById('upload_response').style.display = 'none';

        document.getElementById('error').style.display = 'none';

        document.getElementById('error2').style.display = 'none';

        document.getElementById('abort').style.display = 'none';

        document.getElementById('warnsize').style.display = 'none';

        document.getElementById('progress_percent').innerHTML = '';

        var oProgress = document.getElementById('progress');

        oProgress.style.display = 'block';

        oProgress.style.width = '0px';

        // get form data for POSTing

        //var vFD = document.getElementById('upload_form').getFormData(); // for FF3

        var vFD = new FormData(document.getElementById('upload_form'));

        // create XMLHttpRequest object, adding few event listeners, and POSTing our data

        var oXHR = new XMLHttpRequest();       

        oXHR.upload.addEventListener('progress', uploadProgress, false);

        oXHR.addEventListener('load', uploadFinish, false);

        oXHR.addEventListener('error', uploadError, false);

        oXHR.addEventListener('abort', uploadAbort, false);

        //oXHR.open('POST', 'http://192.168.1.193/h5upload/Demo11/upload.php');

        oXHR.open('POST', uploadUrl);

        //oXHR.overrideMimeType("application/octet-stream");

        //oXHR.setRequestHeader('Content-Type','application/octet-stream');

        oXHR.send(vFD);

        //oXHR.sendAsBinary(vFD);

        // set inner timer

        oTimer = setInterval(doInnerUpdates, 300);

    }

    function doInnerUpdates() { // we will use this function to display upload speed

    //alert("doInnerUpdates");

        var iCB = iBytesUploaded;

        var iDiff = iCB - iPreviousBytesLoaded;

        // if nothing new loaded - exit

        if (iDiff == 0)

            return;

        iPreviousBytesLoaded = iCB;

        iDiff = iDiff * 2;

        var iBytesRem = iBytesTotal - iPreviousBytesLoaded;

        var secondsRemaining = iBytesRem / iDiff;

        // update speed info

        var iSpeed = iDiff.toString() + 'B/s';

        if (iDiff > 1024 * 1024) {

            iSpeed = (Math.round(iDiff * 100/(1024*1024))/100).toString() + 'MB/s';

        } else if (iDiff > 1024) {

            iSpeed =  (Math.round(iDiff * 100/1024)/100).toString() + 'KB/s';

        }

        document.getElementById('speed').innerHTML = iSpeed;

        document.getElementById('remaining').innerHTML = '| ' + secondsToTime(secondsRemaining);        

    }

    function uploadProgress(e) { // upload process in progress

    //alert("uploadProgress");

        if (e.lengthComputable) {

            iBytesUploaded = e.loaded;

            iBytesTotal = e.total;

            var iPercentComplete = Math.round(e.loaded * 100 / e.total);

            var iBytesTransfered = bytesToSize(iBytesUploaded);

            document.getElementById('progress_percent').innerHTML = iPercentComplete.toString() + '%';

            document.getElementById('progress').style.width = (iPercentComplete * 4).toString() + 'px';

            document.getElementById('b_transfered').innerHTML = iBytesTransfered;

            if (iPercentComplete == 100) {

                var oUploadResponse = document.getElementById('upload_response');

                oUploadResponse.innerHTML = '正在上传....';

                oUploadResponse.style.display = 'block';

            }

        } else {

            document.getElementById('progress').innerHTML = 'unable to compute';

        }

    }

    function uploadFinish(e) { // upload successfully finished

    //alert("uploadFinish");

        var oUploadResponse = document.getElementById('upload_response');

        oUploadResponse.innerHTML = e.target.responseText;

        oUploadResponse.style.display = 'block';

        document.getElementById('progress_percent').innerHTML = '100%';

        document.getElementById('progress').style.width = '400px';

        document.getElementById('filesize').innerHTML = sResultFileSize;

        document.getElementById('remaining').innerHTML = '| 00:00:00';

        clearInterval(oTimer);

    }

    function uploadError(e) { // upload error

    //alert("uploadError");

        document.getElementById('error2').style.display = 'block';

        clearInterval(oTimer);

    }  

    function uploadAbort(e) { // upload abort

    // alert("uploadAbort");

        document.getElementById('abort').style.display = 'block';

        clearInterval(oTimer);

    }

    关键字高亮

        keyLight:function(content,key){

        //关键字高亮

         var regExp = new RegExp(key,"gi");

         var start = content.toLowerCase().indexOf(key.toLowerCase());

         var end = start + key.length;

         var origenKey = content.substring(start,end);

         return content.replace(regExp,"<strong style='color:blue;'>"+origenKey+"</strong>");

        },

    判断一个变量是否定义

     If(typeof fn == “function”){ fn(count)}

        if(typeof pushMsg != "undefined" && pushMsg != null){

    pushMsg.setNotPushMsgCount(function(count){

        //展示有推送消息的标记

    pushMsgFlag({},count);

    });

    }

    是否为空对象

     $.isEmptyObject(collectData.videoInfo)

    等同于

    function isEmptyObject(e) {  

        var t;  

        for (t in e)  

            return !1;  

        return !0  

    }  

  • 相关阅读:
    数据库被黑后留下的数据
    cron(CronTrigger)表达式用法
    nodeJS常用的定时执行任务的插件
    css实现隐藏滚动条
    iOS
    iOS
    iOS
    iOS
    iOS
    iOS
  • 原文地址:https://www.cnblogs.com/maohuidong/p/8073808.html
Copyright © 2011-2022 走看看