一、jQuery事件绑定

                <div class='c1'>
<div>
<div class='title'>菜单一</div>
<div class='content'>内容 一</div>
</div>
<div>
<div class='title'>菜单一</div>
<div class='content'>内容 一</div>
</div>
<div>
<div class='title'>菜单一</div>
<div class='content'>内容 一</div>
</div>
<div>
<div class='title'>菜单一</div>
<div class='content'>内容 一</div>
</div>
</div>
jQuery事件绑定:
1.
$('.title').click(function(){
var v = $(this).text();
console.log(v); })
2.
$('.title').bind('click',function(){
var v = $(this).text();
console.log(v);
})
3.
$('.c1').delegate('.title','click',function(){
var v = $(this).text();
console.log(v);
}) 4.
$('.c1').on('click','.title', function () {
var v = $(this).text();
console.log(v);
});

委托绑定

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<input id="txt" type="text"/>
<input id="btn" type="button" value="提交"/>
<ul>
<li>111</li>
</ul>
<script src="jquery-1.12.4.js"></script>
<script>
$('#btn').click(function () {
var v = $('#txt').val();
// var v = $(this).siblings().val();
var temp = document.createElement('li');
temp.innerHTML=v;
$('ul').append(temp);
})
// 绑定委托
$('ul').delegate('li','click',function () {
var v = $(this).text();
v = v+ '+1';
$(this).text(v);
})
</script>
</body>
</html>

页面框架加载完成:

$(function () {
  ...
})
使用:希望查看页面立即执行的操作

阻止默认事件的发生:

$('#bd').click(function () {
  var v = $(this).text();
  alert(v);
  return false;
})

二、表单验证

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
<form id="f1" action="http://www.baidu.com" method="GET">
<p><input type="text" name="username" require="true" /></p>
<p><input type="password" name="password" require="true" min-len="6" max-len="18" /></p>
<p><input type="text" name="phone" require="true" phone="true" /></p>
<input type="submit" value="提交" />
</form> <script src="jquery-1.12.4.js"></script>
<script>
$(function () {
checkValidate();
});
function checkValidate() { $('#f1').find(':submit').click(function () {
$('#f1').find('span').remove();
var flag = true;
$('#f1').find(':text,:password').each(function () {
// $(this)代指每一个input标签
// 每一次执行都是一个标签
// 如果有某个标签的某一项不满足,调到下一个标签
var value = $(this).val();//获取标签里面的值 var require = $(this).attr('require');//获取属性,看是否是必填
if(require){
if(value.length == 0){
var n = $(this).attr('name');
var errorTag = document.createElement('span');
errorTag.innerHTML = n + '输入不能为空';
$(this).after(errorTag); flag = false;
// return true; // continue
return false; // break; }
} var minLen = $(this).attr('min-len');
if(minLen){
var valueLen = value.length;
var minLen = parseInt(minLen);
if(valueLen < minLen){
var n = $(this).attr('name');
var errorTag = document.createElement('span');
errorTag.innerHTML = n + '太短了';
$(this).after(errorTag); flag = false;
// return true; // continue
return false; // break;
}
} var phone = $(this).attr('phone');
if(phone){
// value: asdfasdf
var re = /^\d+$/;//正则匹配^行首$行尾
if(!re.test(value)){//查看正则是否匹配
var n = $(this).attr('name');
var errorTag = document.createElement('span');
errorTag.innerHTML = n + '格式错误';
$(this).after(errorTag); flag = false;
// return true; // continue
return false; // break;
}
} });
return flag;
})
}
</script>
</body>
</html>

三、jQuery扩展

扩展的两种方式

  • .extend({})
  • .fn.extend({})
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<ul>
<li>1</li>
<li>1</li>
<li>1</li>
<li>1</li>
</ul>
<script src="jquery-1.12.4.js"></script>
<script>
$.extend({'alex':function () {
console.log('sb')
}});
$.alex(); $.fn.extend({'wusir':function () {
console.log('wsb',this)
}});
$('li').wusir();
</script>
</body>
</html>

自执行函数

                 (function(jq){
function common(){ } jq.extend({
xx: function(){
common();
} }) })($);

javascript高级

   - 作用域相关
1.
function func(){
if(1==1){
var v= 123;
}
console.log(v);
}
func()
A. 报错(Java,C#) B. 123(对) C.undefined
=》 JavaScript/python是以函数为作用域,非括号为作用域
=》 括号为作用域
2.
xo = 'root1';
function func(){
var xo = 'root2';
function inner(){
console.log(xo);
}
inner();
}
func();
作用域链
// root2
3. xo = 'root1';
function func(){
var xo = 'root2';
function inner(){
console.log(xo);
}
return inner;
}
result = func();
result();
// 作用域链在函数调用之前已经创建,当寻找变量时,根据最开始创建的作用域查找
// root2 4.
xo = 'root1';
function func(){
var xo = 'root2';
function inner(){
console.log(xo);
}
xo = 'root3'
return inner;
} result = func();
result();
       //root3 5.
function func(){
console.log(xo);//undefined
var xo = '123';
console.log(xo);//123
}
func()
// 提前声明,JS
1. 预编译:
var xo;
2. 执行
预编译
  

6.
function func(num){
  console.log(num); // function
  num = 18;
  console.log(num); // 18


  function num(){
  }
  console.log(num); // 18
}
func(666);

a. 预编译 AO
先编译参数:
  AO.num = undefined
  AO.num = 666
再编译变量:
  如果AO中有num,则不做任何操作
  否则 AO.num = undefined
最后编译函数:
  AO.num = function num(){
}


b. 执行

7.

function func(num){
  console.log(num); // function
  function num(){
  }
  console.log(num); // function
  num = 18;

  console.log(num); // 18
}
func(666);

先编译参数:
  AO.num = undefined
  AO.num = 666
再编译变量:
  如果AO中有num,则不做任何操作
  否则 AO.num = undefined
最后编译函数:
  AO.num = function num(){
}


8.
function func(){
  console.log(xo);
  var xo = 123;
}
func()

编译:
参数:
  AO
变量:
  AO.xo = undefined
执行:

函数和面向对象相关

      1.
function func(arg){
console.log(this,arg);
}
func(18);
// func.call(window,20);
// func.apply(window,[30]); (function(arg){
console.log(this,arg);
})(123) 在函数被执行时,默认this是代指window对象 function func(){
window.nn = 'root';
//nn = 'root';
this.nn = 'root';
}
func()
console.log(nn); =====>
a. 在函数内部,默认都有this变量。默认情况下,执行函数时 this=window
b. 使用 函数名.call 或者 函数名.apply 可以对函数中的this主动设置值

2. 在JS中没有字典类型

 var dict = {
name: 'alex',
age: 18
}
等价于
var dict = new Object(); # 表示创建空字典
dict.name = 'alex';
dict.age = 18;

当做对象调用的时候,var obj1 = new func('root');

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<script>
function func(name) {
this.Name = name
}
var obj1 = new func('root');
console.log(obj1.Name);
var obj2 = new func('root1');
console.log(obj2.Name)
</script>
</body>
</html>

当做函数时,this是window,当做类时,this是对象

面试题

 谁调用函数,this就是谁。 函数()执行时候默认window.函数()
每一个函数里都有一个this
Name = '666';
var dict = {
Name: 'root',
Age: 18,
Func: function(){
// this等于dict
console.log(this.Name); // root function inner(){
console.log(this.Name); //
}
inner();
}
} dict.Func(); ============================
谁调用函数,this就是谁。 函数()执行时候默认window.函数()
每一个函数里都有一个this
变量查找顺序,作用域链
Name = '666';
var dict = {
Name: 'root',
Age: 18,
Func: function(){
// this等于dict
console.log(this.Name); // root
// that 等于dict
var that = this; function inner(){
// this=window
console.log(that.Name); // root
}
inner();
}
} dict.Func();

3. 原型

function Foo(name){
  this.Name = name;
}
// 原型
Foo.prototype = {
  Func: function(){
  console.log(this.Name);
}
}

obj1 = new Foo(1)
obj2 = new Foo(2)
obj3 = new Foo(3)

javascript+jQuery补充的更多相关文章

  1. python 全栈开发,Day57(响应式页面-@media介绍,jQuery补充,移动端单位介绍,Bootstrap学习)

    昨日内容回顾 ajax //get post 两种方式 做 请求 get 主要是获取数据 post 提交数据 同一个路由地址 既可以是get请求也可以是post请求 一个路由对应一个函数 get请求 ...

  2. Jquery补充及插件

    此篇为jQuery补充的一些知识点,详细资料请看另一篇博客,地址:https://www.cnblogs.com/chenyanbin/p/10454503.html 一.jQuery中提供的两个函数 ...

  3. dom&JavaScript&Jquery

    目录 dom&JavaScript&Jquery 建节点 添加节点 删除节点: 替换节点: 属性节点 获取值操作 class的操作 指定CSS操作 操作节点 获取input用户输入 操 ...

  4. JavaScript jQuery 中定义数组与操作及jquery数组操作

    首先给大家介绍javascript jquery中定义数组与操作的相关知识,具体内容如下所示: 1.认识数组 数组就是某类数据的集合,数据类型可以是整型.字符串.甚至是对象Javascript不支持多 ...

  5. jQuery操作Dom、jQuery事件机制、jQuery补充部分

    jQuery操作Dom: 修改属性: //使用attr()方法 //attr(name, value) //name:要修改的属性的属性名 //value:对应的值 //attr方法,如果当前标签有要 ...

  6. 在线运行Javascript,Jquery,HTML,CSS代码

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" http://www.w3.org/TR/xht ...

  7. javascript --- jQuery --- Deferred对象

    javascript --- jQuery --- Deferred对象 javascript的函数式编程是多么引人入胜,jQuery使代码尽可能的精简,intelligent! defer - 必应 ...

  8. javascript/jquery读取和修改HTTP headers

    javascript/jquery读取和修改HTTP headers jquery修改HTTP headers jQuery Ajax可以通过headers或beforeSend修改request的H ...

  9. 大量Javascript/JQuery学习教程电子书合集

    [推荐分享]大量Javascript/JQuery学习教程电子书合集,送给有需要的人   不收藏是你的错^_^. 经证实,均可免费下载. 资源名称 资源大小   15天学会jQuery(完整版).pd ...

随机推荐

  1. appcan 多按钮提示框

    使用  appcan.window.alert EG: var btnList=new Array(); btnList[0]="确认"; btnList[1]="取消& ...

  2. black box黑盒测试

    软件规格说明书 等价类划分,完备性,无冗余性(不能有交集).   健壮等价类:无效等价类 边界值分析,对于一个含有n个变量的程序,采用边界值分析法测试程序会产生4n+1个测试用例           ...

  3. HDU 3061:Battle(最大权闭合图)

    http://acm.hdu.edu.cn/showproblem.php?pid=3061 题意:中文题意. 思路:和上一题神似啊,比上一题还简单,重新看了遍论文让我对这个理解更加深了. 闭合图:如 ...

  4. Node热部署插件

    一.supervisor 首先需要使用 npm 安装 supervisor(这里需要注意一点,supervisor必须安装到全局) $ npm install -g supervisor Linux ...

  5. springmvc上传文件踩过的坑

    @RequestMapping("/addTweet") public String addTweet(TweetVO tweetVO, HttpServletRequest re ...

  6. bzoj3316 JC loves Mkk题解

    3316: JC loves Mkk Time Limit: 5 Sec  Memory Limit: 64 MBSubmit: 979  Solved: 316[Submit][Status][Di ...

  7. 【Android UI】顶部or底部菜单的循环滑动效果一

    实现了分页的滑动效果,做的demo流畅运行 注:貌似支持的样式(控件)有一定的限制,我试过短信的listview页面,暂无法实现滑动效果 java文件:MainActivity.java.Activi ...

  8. SpringBoot2.0集成WebSocket,实现后台向前端推送信息

    感谢作者,支持原创: https://blog.csdn.net/moshowgame/article/details/80275084 什么是WebSocket? WebSocket协议是基于TCP ...

  9. Python学习4——条件、循环及其他语句总结

    多种语句 打印语句: 导入语句: 赋值语句: 代码块: 条件语句: 断言: 循环: 推导: pass.dal.exec和eval :  学习到的新函数:(以下函数的应用代码均在IDLE测试通过) ch ...

  10. app同包同签名不能安装问题

    今天博主与团队之间出现一个很郁闷的问题: 那就是我们开发的一个app,在升级推送版本的时候突然出现,相同的包名.相同的签名.在安装的时候出现,安装签名不一致(安装失败)的提示. 让我们很是困扰.后来发 ...