Javascript是一门神奇的语言,很不爽的一门语言,很纠结的一门语言.

以下内容,专业人士请不要看,只供像我一样的菜鸟参考.

(1)Javascript找不到函数.明明已经引用了JS文件,却提示找不到函数.仔细检查发现,JS文件中另一个函数中存在语法错误,导致另一个函数找不到.将错误改正,即可找到函数.

  VS编辑器中,有绿色的下划线的错误,需要仔细改正检查

(2)自己写了一个加载页码的函数,通过AJAX获取相关信息,然后通过JS循环附加.奇怪的是页面中总会少点东西.比如,<<,<符号用来表示第一页,前一页,生成的页面中,该两个符号经常会合成一个符号.

  以为是显示层面的问题,放到table中,每个td保留足够的宽度,结果还是会出现这个问题.经过试验,似乎是JS文件中变量的问题.将附加<<符号的变量与<符号的变量,用两个字符代替,即不会出现此问题.

  比如:原代码 var p1=document.createElement("a");

        .......

        p1=document.createElement("a");

        ......

  修改为:   var p1=document.createElement("a");

        .......

        var p2=document.createElement("a");

        ......

(3)checkbox不显示的问题: 下载了网上的一个网页模板,在Modal中添加checkbox,前面的方框一直不显示.通过IE的开发者工具,发现Modal中有此html代码.

  多方排查,原因,层层嵌套的CSS中,某一个css中设置了其opacity为0,导致了不显示.网页模板中没打算在Modal的Form标签中添加checkbox,因此,原作者故意设计的

  Form标签的某种特效,导致了此处的不显示问题.

(4)未知提交也无法阻止的问题.在Modal中增加了Form表单,Modal中自带一个页脚Div,用以放入Button等按钮.程序设计为在此处点击按钮之后,验证然后提交至服务器.

  验证与提交功能一直很混乱,纠结到死.一直以为是JQuery 的Validate控件没有学好所致.后来发现,页脚DIV中即使放入一个<button>标签,啥都不设置,点击之后竟然

  也提交至服务器.经长期纠结后发现,似乎是此处的模板做了些特殊设定,此处的按钮点击后,由JQuery通过某种途径,还是提交到了后台.

(5)JQuery Validate控件验证像死一样.第一次出现这个问题,是Form标签忘记赋id属性,所以,此处导致了某种找不到控件

  第二次出现这个问题,是由于submit按钮写入了Form标签之外,可是由于错误(4)的问题,希望是提交按钮与Form标签不在一个Form表单中.

  后来没有办法,还是将Button放入了Form中

(6) 1.BootStrap 的iCheck控件的radio的一些列操蛋问题

  这个控件在<input type="radio"/>后通过JS代码增加了一些其他的东西,包括一些div等.

  最初通过代码设置其为Checked,结果一直不显示.后来发现html源中多了好多东东,就自己写JS代码,

  设置由JS生成的一大堆东东的样式属性等,以显示出选中的效果.可以解决问题.效果如下:

<div class="iradio_minimal" aria-checked="false" aria-disabled="false" style="position: relative;"><input name="rdSP" id="rdSp" style="background: rgb(255, 255, 255); margin: 0px; padding: 0px; border: 0px currentColor; border-image: none; left: -20%; top: -20%; width: 140%; height: 140%; display: block; position: absolute; opacity: 0;" onclick="StateSwitch()" type="radio" value="审批"><ins class="iCheck-helper" style="background: rgb(255, 255, 255); margin: 0px; padding: 0px; border: 0px currentColor; border-image: none; left: -20%; top: -20%; width: 140%; height: 140%; display: block; position: absolute; opacity: 0;"></ins></div>

  2.后又出现新问题:

  最初调试的时候,在<input type="radio" click="switchState()"/>,包含一个函数,刚开始执行正常.后来突然出现,

  不在相应此事件了,推测似乎是在界面中的相关操作,被外层的DIV截获,处于底部的radio事件无法触发.

  查询资料,iCheck的事件绑定需要使用代码,如下

 //事件绑定
$("#rdSp").on("ifClicked", function (event) {
StateSwitch();
});
$("#rdWsp").on("ifClicked", function (event) {
StateSwitch();
});

  3.解决了上述问题,又出问题(一开始没有此问题的),radio的Check的状态获取不到了,明明选中了,代码中却获取不到这个checked.

  还是推测被外层的DIV给截获了

  通过查询资料,

  使用bootstrap iCheck插件的radio的checked状态,应当通过如下代码获取

 if ($("#rdSp").prop("checked")) {
  //to do something
}

  最初的通过document.getElemetById(),再获取checked属性的方法,对iCheck 包装的,一开始可以,后来就不行了

  辣么,1.中描述通过JS代码层层设置其样式多个属性的方法也是比较啰嗦的,可通过如下代码实现: 

$("#rdSp").iCheck('check');
$("#rdWsp").iCheck('uncheck');

  4.解决了上述问题之后,辣么,又出现了一个问题:

  代码中跟选中的radio的不同,显示不同的界面,通过radio的Click事件调用StateSwitch()方法,判断一下目前的状态,再以JS 往界面添加内容.

  却出了当我点击radio1时,js却得到了是radio2处于被选中的状态.

  推测:JQuery应是先获取当前控件的Checked状态,再切换状态.

  解决方法:checked取反,或者绑定ifChecked事件,来修改界面.

FXK Javascript的更多相关文章

  1. JavaScript之父Brendan Eich,Clojure 创建者Rich Hickey,Python创建者Van Rossum等编程大牛对程序员的职业建议

    软件开发是现时很火的职业.据美国劳动局发布的一项统计数据显示,从2014年至2024年,美国就业市场对开发人员的需求量将增长17%,而这个增长率比起所有职业的平均需求量高出了7%.很多人年轻人会选择编 ...

  2. javascript中的Array对象 —— 数组的合并、转换、迭代、排序、堆栈

    Array 是javascript中经常用到的数据类型.javascript 的数组其他语言中数组的最大的区别是其每个数组项都可以保存任何类型的数据.本文主要讨论javascript中数组的声明.转换 ...

  3. Javascript 的执行环境(execution context)和作用域(scope)及垃圾回收

    执行环境有全局执行环境和函数执行环境之分,每次进入一个新执行环境,都会创建一个搜索变量和函数的作用域链.函数的局部环境不仅有权访问函数作用于中的变量,而且可以访问其外部环境,直到全局环境.全局执行环境 ...

  4. 探究javascript对象和数组的异同,及函数变量缓存技巧

    javascript中最经典也最受非议的一句话就是:javascript中一切皆是对象.这篇重点要提到的,就是任何jser都不陌生的Object和Array. 有段时间曾经很诧异,到底两种数据类型用来 ...

  5. 读书笔记:JavaScript DOM 编程艺术(第二版)

    读完还是能学到很多的基础知识,这里记录下,方便回顾与及时查阅. 内容也有自己的一些补充. JavaScript DOM 编程艺术(第二版) 1.JavaScript简史 JavaScript由Nets ...

  6. 《Web 前端面试指南》1、JavaScript 闭包深入浅出

    闭包是什么? 闭包是内部函数可以访问外部函数的变量.它可以访问三个作用域:首先可以访问自己的作用域(也就是定义在大括号内的变量),它也能访问外部函数的变量,和它能访问全局变量. 内部函数不仅可以访问外 ...

  7. JavaScript权威指南 - 函数

    函数本身就是一段JavaScript代码,定义一次但可能被调用任意次.如果函数挂载在一个对象上,作为对象的一个属性,通常这种函数被称作对象的方法.用于初始化一个新创建的对象的函数被称作构造函数. 相对 ...

  8. JavaScript自定义浏览器滚动条兼容IE、 火狐和chrome

    今天为大家分享一下我自己制作的浏览器滚动条,我们知道用css来自定义滚动条也是挺好的方式,css虽然能够改变chrome浏览器的滚动条样式可以自定义,css也能够改变IE浏览器滚动条的颜色.但是css ...

  9. JavaScript进阶之路(一)初学者的开始

    一:写在前面的问题和话 一个javascript初学者的进阶之路! 背景:3年后端(ASP.NET)工作经验,javascript水平一般般,前端水平一般般.学习资料:犀牛书. 如有误导,或者错误的地 ...

随机推荐

  1. Java for LeetCode 162 Find Peak Element

    A peak element is an element that is greater than its neighbors. Given an input array where num[i] ≠ ...

  2. 神经网络(luogu 1038 答案错误,出题人语体教)

    题目背景 人工神经网络(Artificial Neural Network)是一种新兴的具有自我学习能力的计算系统,在模式识别.函数逼近及贷款风险评估等诸多领域有广泛的应用.对神经网络的研究一直是当今 ...

  3. loadingDialog

    1.dialog布局 dialog_loading.xml <?xml version="1.0" encoding="utf-8"?> <L ...

  4. Android实现电子邮箱客户端

    本文主要讲述了安卓平台上利用QQ邮箱SMTP协议,POP3协议发送与接收消息的实现 发送邮件核心代码 import java.security.Security; import java.util.D ...

  5. oracle 10g 学习之创建和管理表(7)

    目标 通过本章学习,您将可以: l  描述主要的数据库对象. l  创建表. l  描述各种数据类型. l  修改表的定义. l  删除,重命名和清空表. 常见的数据库对象 表.视图.序列.索引.同义 ...

  6. 电赛总结(三)——DA芯片总结

    一.AD7890 1.特性参数 (1)高速12位DA,转换速度5.9us (2)具有8个通道. (3)串行通信 2.芯片管脚图 3.管脚功能 管脚名称 功能 AGND 模拟地 SMODE 控制端,&q ...

  7. android 自定义相机画面倒立解决方案

    有部分手机的影像是倒立的,如何解决这个问题呢? 请看下面 public static void setCameraDisplayOrientation(Activity activity, int c ...

  8. SU Demos-04Deconvolution-02Wiener_Levinson

    本Demo共有4个脚本,我只看了第一个,后面的3个不熟悉,就不往这里贴图了,望谅解. 不足之处,欢迎批评指正. 先看readme 生成数据所需的c程序 make上述c程序时需要的makefile(本人 ...

  9. jsp错误解决办法

    jsp页面出现"<%@"的错误提示的解决办法 原因是缺少jar包,在tomcat下的lib中找到servlet-api.jar复制到工程的webcontent->lib ...

  10. iOS @try

    try{ //1:抛出异常的代码 //2:代码 }catch(){ //3:代码 //4:抛出异常 }finally{ //5:代码 } //6:代码要明确的一点是:不管try是否抛出异常,final ...