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 029 Divide Two Integers

    Divide two integers without using multiplication, division and mod operator. If it is overflow, retu ...

  2. codeforces 478A.Initial Bet 解题报告

    题目链接:http://codeforces.com/problemset/problem/478/A 题目意思:简单来说,就是初始化的时候,五个人的值都是 b,现在给出每个人最终的状态:就是经过互相 ...

  3. Mybatis各种模糊查询

    转载自:http://blog.sina.com.cn/s/blog_667bef380101f2da.html 工作中用到,写三种用法吧,第四种为大小写匹配查询 1. sql中字符串拼接 SELEC ...

  4. GPU基本概念详解

    §1 个 multiprocessor <-> 1个instruction unit  <-> 8 个processor  <-> 在一个warp中执行  < ...

  5. Hadoop 中文编码相关问题 -- mapreduce程序处理GBK编码数据并输出GBK编码数据(转)

    hadoop的hdfs文件系统中,默认的是utf-8, 故你上传的文件是要设置成utf-8.当输入的是gbk,有该如何? 输入是GBK文件, 输出也是 GBK 文件的示例代码: Hadoop处理GBK ...

  6. web页面自适应手机屏幕宽度

    <meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scal ...

  7. poj 2186 有向图强连通分量

    奶牛互相之间有爱慕关系,找到被其它奶牛都喜欢的奶牛的数目 用tarjan缩点,然后判断有向图中出度为0的联通分量的个数,如果为1就输出联通分量中的点的数目,否则输出0. 算法源自kb模板 #inclu ...

  8. myeclipse打war包

    转自:http://wjlvivid.iteye.com/blog/1401707 右键选中项目,选择export然后选择J2EE->WAR File,点击next 接下来指定war包的存放路径 ...

  9. Eigen相关介绍

    最近在用Matlab处理图像,现在要做的是将其用C++语言进行翻译,由于要进行大量的矩阵计算,就研究了一下可以进行矩阵计算的开源库,详细的介绍可以参照http://my.oschina.net/cvn ...

  10. android获取string.xml的值(转)

    为什么需要把应用中出现的文字单独存放在string.xml文件中呢? 一:是为了国际化,当需要国际化时,只需要再提供一个string.xml文件,把里面的汉子信息都修改为对应的语言(如,English ...