• 一些JQuery使用技巧


    最近做项目,在使用JQuery中遇到一些问题记录下。

    1.根据Id查询父级内容,或者父级的父级

    之前会使用$("#id").parent().parent();

    这种使用有很大的弊端,现在可使用closest 函数,在需要查询的父级定义一个class,

    例如:$("#id").closest(".class");

    2.设置CheckBox 的勾选/取消勾选问题

    一般使用$("[name=items]:checkbox").attr("checked", true); 

    但是第一次执行,没问题,但第二次执行就有问题了,选择不了

    解决办法:把attr()换成prop()

    例如:$("[name=items]:checkbox").prop("checked", true);

    参考:http://www.cnblogs.com/KeenLeung/p/3799895.html

    3.使用trigger触发事件

    例如:$("#id").trigger("click");

    4.判断是否是移动端

    if('ontouchstart' in document){

      //todo

    }

    ====2017.7.20 补充======

    上面判断是否移动端的有个bug.

    更新为下面这个函数

     1 //判断是否是PC
     2 function IsPC(){    
     3     var userAgentInfo = navigator.userAgent;  
     4     var Agents = new Array("Android", "iPhone", "SymbianOS", "Windows Phone", "iPad", "iPod","BlackBerry");    
     5     var flag = true;    
     6     for (var v = 0; v < Agents.length; v++) {    
     7         if (userAgentInfo.indexOf(Agents[v]) > 0) { flag = false; break; }    
     8      }    
     9     return flag;    
    10 }

    5.table 固定表头

    表头不能换行,内容可以换行。

    给table添加样式 table-layout:fixed

    6.表单提交特殊字符处理,预防XXS漏洞

    http://www.cnblogs.com/bigbrid/p/6909716.html

    7.AJAX跨域提交表单

    http://www.cnblogs.com/bigbrid/p/6542648.html

    8.页面中经常用到弹窗,关闭窗口之类。有个方法获取当前窗口和当前窗口索引

     1 var topformwindow=window;
     2 var currentIndex=0;
     3 var currentPageIndex=0;
     4 
     5 function getFormWindow()
     6 {
     7     var  formWindow=window;
     8     var  lastWindow=formWindow;
     9     try{
    10         for(i=0;i<10;i++){
    11             if(formWindow.tempCode!=undefined && formWindow.tempCode!="")
    12             {
    13                lastWindow=formWindow;
    14                
    15                if(formWindow.parent==null){
    16                    currentPageIndex=lastWindow.currentIndex;
    17                     return lastWindow;   
    18                }
    19                formWindow=formWindow.parent;
    20             }else{
    21                 currentPageIndex=lastWindow.currentIndex;
    22                return lastWindow;
    23            }
    24         }
    25         currentPageIndex=lastWindow.currentIndex;
    26         return lastWindow;
    27     }
    28     catch(ex){
    29         currentPageIndex=lastWindow.currentIndex;
    30         return lastWindow;    
    31     }
    32 }

    9.手机端使用的弹层组件

    之前在PC端弹层组件用的artDialog ,现在发现没有移动端,

    经调研发现layer不错,现在移动端的弹窗组件就用它了。 

     10.Table 兼容手机端样式

    https://css-tricks.com/examples/ResponsiveTables/responsive.php

    11.IE9以下版本,Ajax的error提示no transport的问题

    1 jQuery.support.cors = true;
    2 
    3 $.ajax({
    4   crossDomain: true,
    5   url: "",
    6   type: "POST",
    7   dataType: "xml",
    8   data: soapMessage,
    9 });

    添加完上面设置发现IE9还是报错,最后发现是IE浏览器的安全性设置问题,

    解决方法如下:点击IE浏览器的的“工具->Internet 选项->安全->自定义级别”将“其他”选项中的“通过域访问数据源”选中为“启用”或者“提示”,点击确定就可以了。

    12.IE下Ajax 请求有缓存

    解决方法:

    1.在AJAX请求的页面后加个随机函数,我们可以使用随机时间函数
    在javascript发送的URL后加上t=Math.random()
    
    例如这样:URL+"&"+"t="+Math.random();或者new Date();
    在 URL 参数后加上 "?timestamp=" + new Date().getTime();
    
    2.最好的方法:
    $.ajaxSetup({cache:false})
    
    这样页面中所有的ajax请求时,都执行这个。就不必改已经完成的N个接口

     

    13.数据的一些基本格式校验

    http://www.cnblogs.com/bigbrid/p/7846367.html

    持续更新...

  • 相关阅读:
    java处理图片压缩、裁剪
    List按对象元素自定义排序
    List和数组汉字简单排序(转)
    欢迎访问我的个人博客,部分文章迁移
    Java资源免费分享,每日一更新,找到你心仪的吧
    今年的校招,Java好拿offer吗?
    【拥抱大厂系列】几个面试官常问的垃圾回收器,下次面试就拿这篇文章怼回去!
    2019,我的这一年,在校研究生做到年入20W,另送我的读者2000元现金红包
    深入理解Java虚拟机-如何利用VisualVM对高并发项目进行性能分析
    深入理解Java虚拟机-常用vm参数分析
  • 原文地址:https://www.cnblogs.com/bigbrid/p/7028260.html
Copyright © 2020-2023  润新知