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. sockaddr struct 类型重定义

    windows.h和winsock2.h有类型重定义我是知道的,本来就一个库来说没问题,把winsock2放到windows.h前或先定义WIN32_LEAN_AND_MEAN都能解决问题但现的出了问 ...

  2. Linux系统排查2——CPU负载篇

    本随笔介绍CPU负载的排查手段. 查看系统负载的工具:uptime,w,都能查看系统负载,系统平均负载是处于运行或不可打扰状态的进程的平均数, 可运行:运行态,占用CPU,或就绪态,等待CPU调度. ...

  3. canvas API ,通俗的canvas基础知识(三)

    全文说到了三角形,圆形等相关图形的画法,不熟悉的同学可以出门右转,先看看前文,接下来继续我们的图形——曲线. 学过数学,或者是比较了解js 的同学都知道贝塞尔曲线,当然,在数学里面,这是一门高深的学问 ...

  4. UVALive 7040 Color (容斥原理+逆元+组合数+费马小定理+快速幂)

    题目:传送门. 题意:t组数据,每组给定n,m,k.有n个格子,m种颜色,要求把每个格子涂上颜色且正好适用k种颜色且相邻的格子颜色不同,求一共有多少种方案,结果对1e9+7取余. 题解: 首先可以将m ...

  5. Javascript备忘

    js输出对象类型: Object.prototype.toString.apply(s) 设置单行点击效果: obj.style.background = "#efefef";se ...

  6. Win7下Event_Log服务4201错误的有效解决方法

    在对Windows7系统进行某些优化或者更改了用户权限之后,会导致Window7系统的“事件查看器”无法启动,显示相关服务没有运行,而对相应服务Windows Event Log进行手动启动的时候,会 ...

  7. 说说GET和POST方法的区别

    完全来自博客园的一篇文章,GET和POST有什么区别?说的非常有道理,学习了. 错误理解 反驳 GET使用URL或Cookie传参.而POST将数据放在BODY中. GET和POST与数据如何传递没有 ...

  8. cf584a(水题)

    题意是输出一个能被t整除的n位数... 思路很简单,输出t和n-1个0即可.当然,还需要特判一下t为1,n为10的情况.. 代码如下: #include <bits/stdc++.h> u ...

  9. ASP.NET服务器端执行耗时操作的工作记录

    公司之前有这样一个业务需求: 一名同事做出文件a0和b0,然后将a0加密为a1.b0加密为b1:再将文件a0.a1.b0和b1上传至服务器M:同时要将服务器N上的数据表添加一条记录,该记录的ID就是前 ...

  10. phpcms v9 首页怎么调取单页内容,描述,标题等

    {pc:,  v9 数据表前缀  catid 这是单页的id