引用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  

}  

posted on 2017-12-20 15:05  毛会懂  阅读(289)  评论(0编辑  收藏  举报