jquery append 动态添加的元素事件on 不起作用的解决方案
on方法中要先找到原选择器(如例.info),再找到动态添加的选择器(如列.delete)。
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd" > <html> <head> <meta http-equiv= "Content-Type" content= "text/html; charset=UTF-8" > <title>测试</title> <script type= "text/javascript" src= "../resources/js/jquery-1.11.1.min.js" ></script> <script type= "text/javascript" > $( function (){ //动态添加 $( ".add" ).on( "click" , function (){ console.log( "进来了" ); $( ".info" ).append( '<div class="delete"><h3>单击我来删除我</h3></div>' ); }); //对动态添加的元素添加事件-删除 $( ".info" ).on( "click" , ".delete" , function (){ console.log( "进来了Delete!" ); $( this ).remove(); }); }); </script> </head> <body> <h2 class= 'add' >单击我添加动态元素</h2> <div class= "info" ></div> </body> </html> |
原生js的return false,只会阻止默认行为,不会停止冒泡的,而是用jQuery的话则既阻止默认行为又防止对象冒泡。
$("ul li:first") 选取第一个 <ul> 元素的第一个 <li> 元素
$("ul li:first-child") 选取每个 <ul> 元素的第一个 <li> 元素
$("div p").first(); 选取首个 <div> 元素内部的第一个 <p> 元素:
选取首个 <div> 元素内部的第一个 <p> 元素:
filter() 方法允许您规定一个标准。不匹配这个标准的元素会被从集合中删除,匹配的元素会被返回。
$("p").not(".intro"); not() 方法返回不匹配标准的所有元素。
$.noConflict();
var jq = $.noConflict();
param() 方法创建数组或对象的序列化表示形式。
序列化的值可在生成 AJAX 请求时用于 URL 查询字符串中。
session是另一种记录客户状态的机制,不同的是Cookie保存在客户端浏览器中,而session保存在服务器上。
客户端浏览器访问服务器的时候,服务器把客户端信息以某种形式记录在服务器上,这就是session。客户端浏览器再次访问时只需要从该Session中查找该客户的状态就可以了。
如果说Cookie机制是通过检查客户身上的“通行证”来确定客户身份的话,那么session机制就是通过检查服务器上的“客户明细表”来确认客户身份。
session相当于程序在服务器上建立的一份客户档案,客户来访的时候只需要查询客户档案表就可以了。
两者的区别:
cookie数据存放在客户的浏览器上,session数据放在服务器上。
cookie不是很安全,别人可以分析存放在本地的COOKIE并进行COOKIE欺骗 考虑到安全应当使用session。
session会在一定时间内保存在服务器上。当访问增多,会比较占用你服务器的性能 考虑到减轻服务器性能方面,应当使用COOKIE。
单个cookie保存的数据不能超过4K,很多浏览器都限制一个站点最多保存20个cookie。
所以建议:将登陆信息等重要信息存放为session、其他信息如果需要保留,可以放在cookie中
var e =e || window.event;
//阻止默认行为
e.preventDefault();
e.returnValue=true; //IE
//阻止冒泡
e.cancelBubble = true; //IE
e,stopPropagation();
//阻止捕获
function(event) {
var e = window.event || event;
if (e.stopPropagation) {
e.stopPropagation();
} else {
e.cancelBubble = true;
}
}
if (e.stopPropagation) {
e.stopPropagation();
e.preventDefault();
} else {
e.cancelBubble = true;
e.returnValue=false;
}
return false;