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 ...
随机推荐
- hive 使用笔记(table format;lateral view)
1. create table 创建一张目标表,指定分隔符和存储格式: create table tmp_2 (resource_id bigint ,v int) ROW FORMAT DELIMI ...
- 【BZOJ-1787&1832】Meet紧急集合&聚会 倍增LCA
1787: [Ahoi2008]Meet 紧急集合 Time Limit: 20 Sec Memory Limit: 162 MBSubmit: 2259 Solved: 1023[Submit] ...
- SCP注意事项
scp hdfs-site.xml hxsyl@192.168.58.181:/home/..../etc/hadoop/ 中间路径省略了,刚开始没加冒号提示同样的文件,还以为是scp需要特殊指令才能 ...
- 【bzoj2118】 墨墨的等式
http://www.lydsy.com/JudgeOnline/problem.php?id=2118 (题目链接) 题意 给出${B}$的取值范围${[Bmin,Bmax]}$,求方程${a_{1 ...
- poj2318
题意:把一个矩形划分成n部分,再给出一堆点,求每个部分内落入了多少点 sol attempt1:暴力 注意每个polygon中的点要按笔画的顺序排列好.还有就是有的点可能落在了upper or low ...
- Windows、Linux下文件操作(写、删除)错误的产生原因、及解决方法
catalog . 引言 . Linux平台上涉及的File IO操作 . Windows平台上涉及的File IO操作 0. 引言 本文试图讨论在windows.linux操作系统上基于C库进行文件 ...
- 使用Eval()绑定数据时使用三元运算符
ASP.NET邦定数据“<%#Eval("Sex")%>”运用三元运算符: <%#(Eval("Sex", "{0}") ...
- primefaces 上传文件尺寸受限制 Connection terminated as request was larger than
standalone.xml like this: <http-listener name="default" socket-binding="http" ...
- JZOJ P1847:找01串
传送门 DP预处理+贪心 首先设$f[i][j]$表示长度为$i$的01串中有不大于$j$个1,然后显然 $f[i][j]=\sum_{k=1} ^{j} C[i][k]$ $C[i][j]=C[i- ...
- 最短路径(Floyd)算法
#include <stdio.h>#include <stdlib.h>/* Floyd算法 */#define VNUM 5#define MV 65536int P[VN ...