js中的全局变量和静态变量的使用, js 的调试?- 如果js出错, js引擎 就会停止, 这会 导致 后面的 html中 refer 该函数时, 会报错 函数为定义!!
- 效果里面的函数, 如show, hide,slideDown等, 这些都叫 “效果”函数, 但是里面可以包含动画, 也可以 不包含动画。
- 动画,是指 元素 的内容 是 逐渐 显示/隐藏的, 不是一下子就 出来的.
- 如果函数中的参数 speed 或 spe, 不写, (speed的默认值等于0) 就是 "直接效果, 原始效果", 没有 动画的 版本;
- 如果指定了参数 spe, 就是有动画的版本,
两者都是 " 效果 " 函数
- 效果函数中的 speed, 表示 "中速" 的 关键字 normal, 不是medium.
- 关键字slow normal和 fast的速度大概就是: 600ms, 400ms, 200ms.
speed的取值是大于等于0的, 默认的是0秒, 就是无动画.
4. 关于display:none 和 display:hidden的区别?
- 要实现元素 "在视觉上不 可见", 有这样3种方法:
通过jquery的方法: hide(...);
通过设置input的类型 为 hidden;
最后就是通过设置 css样式
- css样式里面 有: display:none; 和 visibility: hidden. 注意没有display: hidden 这样的样式属性! 也没有 visible: hidden; 这样的属性, visible单词错误, 是visibility: hidden.
要注意display的css属性 ,不要跟position相混淆了, positon是摆放相对位置, 取值: relative, absolute, fixed, inherit..
但是, 在jquery中, 显示和隐藏的筛选选择器是 :hidden, 和 :visible(注意, 不是visibility)
不管是display:none还是 visibility:hidden, 浏览器都要下载并加载元素, 只是由css来控制显示?? 还是浏览器 要下载整个html结构, 只是在渲染加载 的时候忽略?? 我觉得还是前者是正确的!
通过visibility:hidden来 "隐藏" 元素, 只是在 "视觉"上 不可见, 只是 "visual" 属性 , 如: color, background, border...没有了, 但是其他属性如 width, height, line-height 等 "非可视属性" 还是存在并 表现的. 只是用一块 "白色"的区域来表示. 它后面 的元素是要往后面排列的. 而display:none, 则直接所有的属性 都没有的!!!
比如下面的代码, 通过按钮 来 切换显示和隐藏的效果:
$("button").click(function(){
if($("p").is(":visible")){
$("p").hide("slow");
}else{
$("p").show("slow");
}
});
*6. js中的全局变量和静态变量?
下面这些内容是非常重要的:
1. 凡事在 函数 之外的变量, 就是 "全局变量"
2. 没有静态变量的说法, 所谓的"静态"变量就是 通过"全局变量"来实现的
3. javascript的变量, 声明, 有两种方式, 一是: 显式的用var来声明, 这种方法的变量在函数之外的是全局变量, 在函数内部的是局部变量;
二是, 隐式的变量, 不用声明, 直接就使用的, **这种隐式的 变量 是被 当作 "全局"变量来对待的!!**
4. 一个很重要的概念: 函数的定义和函数的执行! 函数的定义只是 一种"静态"的"死"的 代码, 系统 并没有在内存中 为其中的 变量分配内存, 也即是 其中的变量 在内存中 是不存在的, 连 "undefined"都不是! 只有当调用了 函数, 函数被执行后, 变量才会在内存中分配 单元空间, 变量才真实存在!! 其实 函数的定义声明 和函数的执行, 区别也很好理解, 比如: 在函数中 的执行语句, 如alter(...);什么的, 你 定义了函数, 没有调用函数, 这些语句 很显然 都知道 不会执行的!!
5. 变量的生存期 , 是从变量开始建立, 到 程序的结束. 作用域是从 变量建立开始 往下的所有代码行. 只有函数中的 "同名"的 局部变量才会 屏蔽 同名的 全局变量
6. js和php中, 好像没有C语言中的 extern 关键字, 所以要跨文件使用 变量, (一个变量在文件a,和文件b中都可以使用), 都是通过 "include"包含来实现的. 把这些js和php 写成一个公共的文件, 然后 include包含, 或 用 <script src="public.js"> 包含.
7. toggle函数: toggle([speed,[easing],[fn...], [switch]-显示开关!);
特别要注意的是, 最后的这个fn, 不是用来控制元素的 显示或隐藏的, 只是用来 补充 元素在动画完成后的一些动作或提示信息...
元素本身的 显示和隐藏, 是由这个函数本身 内在 就决定了的, - - - "不是: '第一次单击显示, 第二次就隐藏 '", 而是: "如果元素是可见的,切换为隐藏的;只要元素是隐藏的,就切换为可见的。"
注意这个fn, 它可以是 一个,两个, 多个, 反正是 轮流 响应的 被选元素的 click事件.
如果只有一个函数; 每次toggle完后, 都执行这个函数... 如果有两个函数: 如果有多个函数:如果不是 元素本身的click事件, 怎么办?
这里的说法, 是有点问题的, 不应该是 元素 本身的 click事件, 来切换元素本身的显示和隐藏, 因为: 如果元素本身都隐藏了, 怎么来click呢? 应该是 外在的 超链接, 或按钮的 click事件, 来触发, 调用这个toggle函数. 这个经过实践 验证, 就是这样的!!toggle函数, 有一个参数, switch开关, 这个参数也是很有用的: 以前的show,hide方法, 都是写死了的, 要么显示, 要么隐藏, 有时候, 需要根据 某些条件来 决定元素的显示 与否, 这时候, 就要用这个参数了:
像上面的那个功能, 其实不需要写那么多, 只需要 给toggle函数提供一个 boolean变量就可以了!!
$("button").click(function(){
if($("p").is(":visible")){
$("p").hide("slow");
}else{
$("p").show("slow");
}
});
;;; 上面这些代码都不要, 只需要两行代码: (使用 switch开关参数就非常方便)
var showOrHide=true;
click函数中:
showOrHide = !showOrHide;
$("p").toggle(showOrHide);
*8. console.log 也主要是用来调试的, 在发行版中要删除, 比alert的功能更强大 , 显示的内容更多, 对数组和对象, 可以显示更完整的信息, 如同在php中的echo和dump, print_r
**js中的window对象, ** 是包含整个窗口的一个对象, 我们平常很多使用的函数方法, 如alert(),confirm, setInterval, setTimeout等都是window的方法,只是在使用window对象的时候,可以不写它
*9. js中的for(i in window)循环?
for有两种形式, 一是传统的 c语言for循环 for(;..;
js中的全局变量和静态变量的使用, js 的调试?- 如果js出错, js引擎 就会停止, 这会 导致 后面的 html中 refer 该函数时, 会报错 函数为定义!!的更多相关文章
- C++调用动态库中的虚基类成员函数时总是进错函数
原创文章,转载请注明作者与本文原始URL. 问题描述:最近遇到这样一个问题,在调用C++的一个成员函数时,总是进错函数.在调用 pMsg->GetMsgContent() 的时候,总是进入到 p ...
- java中的全局变量与静态变量的区别与联系?有时候为什么专门定义静态变量。(标题党~~)
static代表“每个类一个”而不是“每个对象一个”.即静态变量是类的所有对象共有的. 1 static JFrame f; static MyDrawPanel ml; 整个应用程序如下: 定义在p ...
- larave5.6 引入自定义函数库时,报错不能重复定义
方法一:使用function_exists判断 方法二:使用命名空间 namespace test; function test(){ echo 'test/test'; } namespace te ...
- 内部类访问外部类的变量必须是final吗,java静态方法中不能引用非静态变量,静态方法中不能创建内部类的实例
内部类访问外部类的变量必须是final吗? 如下: package com.java.concurrent; class A { int i = 3; public void shout() { cl ...
- Swift中的类型属性(静态变量)
http://blog.haohtml.com/archives/15098 Swift中的类型属性(静态变量) Posted on 2014/06/13 类型属性语法 在 C 或 Objective ...
- MyEclipse上有main函数类运行报错:Editor does not contain a main type
MyEclipse下有main函数类运行报错:Editor does not contain a main type 出现这种问题的原因是,该java文件所在的包没有被MyEclipse认定为源码包. ...
- MyEclipse上有main函数类运行报错:Editor does not contain a
MyEclipse下有main函数类运行报错:Editor does not contain a main type?出现这种问题的原因是,该java文件 MyEclipse下有main函数类运行 ...
- saltstack配置安装的一些关键步骤及安装时各种报错的分析
以下其他仅做参考,官方网址才是安装重点:http://docs.saltstack.cn/topics/installation/rhel.html 与安装相关的一些文档或资料: 一.linux服务器 ...
- java连接数据库时的报错
//java连接数据库时的报错 1 package Java数据库编程; import java.sql.DriverManager; import java.sql.SQLException; im ...
随机推荐
- Linux 简介
转载:http://c.biancheng.net/cpp/html/2726.html Linux简介 严格的来讲,Linux 不算是一个操作系统,只是一个 Linux 系统中的内核,即计算机软件与 ...
- 【BZOJ-2400】Spoj839Optimal Marks 最小割 + DFS
2400: Spoj 839 Optimal Marks Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 567 Solved: 202[Submit ...
- Android成长日记-APP的签名和打包
签名的意义: 1. 为了保证每个应用程序开发者的合法 2. 防止部分人通过使用相同的Package Name来混淆替换已经安装的程序,从而出现一些恶意篡改 3. 保证我们每次发布的版本的一致性 (如自 ...
- poj3675 求多边形与圆的面积交
题意:给出多边形的顶点坐标.圆的圆心坐标和半径,求面积交 sol:又是模板题啦= = 注意poj的C++好像认不出hypot函数,要稍微改写一下. hypot(double x,double y):即 ...
- 更改codeblocks的配色方案
codeblocks默认只有一种配色方案, 不过我们可以手动添加. 在终端下输入如下命令: cd ~/.codeblocks sudo gedit default.conf 在打开的配置文件中, 找到 ...
- Refresh和Invalidate的比较
Refresh: 强制控件使其工作区无效并立即重绘自己和任何子控件.==Invalidate + Update Invalidate: 使控件的特定区域(可以自己设置区域,从而提高性能)无效并向控件发 ...
- PHP设计模式(三)
注册器模式 这种模式比较简单好理解,在PHP框架中会经常用到,在某些比较大的PHP框架中,会在初始化时将一些常用的类实例放在注册器中,实际是存在注册器类中的一个静态数组中,以后想去用它的话,直接根据名 ...
- UVA12034Race(DP)
题目链接 题意:A.B两人赛马,最终名次有三种可能:并列第一:A第一,B第二:B第一,A第二.输入n,求 n 人赛马时最终名次的可能,结果对10056取余 分析:对于 i 匹马来说,有 i 中可能,设 ...
- Docker入门教程(六)另外的15个Docker命令
Docker入门教程(六)另外的15个Docker命令 [编者的话]DockerOne组织翻译了Flux7的Docker入门教程,本文是系列入门教程的第六篇,继续介绍Docker命令.之前的第二篇文章 ...
- EmguCV 一些基本操作
http://www.cnblogs.com/alsofly/p/3524866.html?utm_source=tuicool&utm_medium=referral 一.先是在程序中图像的 ...