<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8" isELIgnored="false"%>
<%@ include file="/pages/Head.jsp"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
<style type="text/css">
#tb {
border-collapse:collapse;
}
#tb th,#tb td {
padding:5px 15px;
border:1px solid #000;
}
</style>
</head>
<body>
<table id="tb">
<thead>
<tr>
<th>id</th>
<th>login_id</th>
<th>password</th>
<th>操作</th>
</tr>
</thead>
<tbody>
</tbody>
</table>
<a href="${basePath }/pages/user/add.jsp" class="add">添加</a></br>
<table>
<tbody>
<tr>
<td><a class="add">添加2</a> / <a class="adds">添加3</a></td>
</tr>
<tr>
<td><a class="add">添加2</a> / <a class="adds">添加3</a></td>
</tr>
<tr>
<td><a class="add">添加2</a> / <a class="adds">添加3</a></td>
</tr>
<tr>
<td><a class="add">添加2</a> / <a class="adds">添加3</a></td>
</tr>
</tbody>
</table>
<a class="add">添加2</a>
<a class="add">添加3</a>
<a class="add">添加4</a>
<a class="add">添加5</a>
<script type="text/javascript" src="${basePath }/js/jquery-1.12.2.min.js"></script>
<script>
$(function(){
$.ajax({
url:"${basePath}/userList.do",
type:"get",
dataType:"json",
success:function(result){
for(var i=0;i<result.length;i++){
var $tr=$("<tr></tr>");
$tr.append("<td>"+result[i].id+"</td>").
append("<td>"+result[i].loginId+"</td>").
append("<td>"+result[i].password+"</td>").
append("<td><a class='update'>修改</a> / <a class='delete'>删除</a></td>");
$("#tb tbody").append($tr);
}
}
});
$(".update").click(function(){
alert("123456");
});
$(".add").click(function(){
alert("123456");
});
$(".adds").click(function(){
alert("654321");
});
});
</script>
</body>
</html>
点击“添加”的那些a标签时可以获得点击事件,会有弹窗出现,
$(".add").click(function(){
alert("123456");
});
$(".adds").click(function(){
alert("654321");
});
这两个弹窗都能出现,
为什么点“修改”的时候就无法获得点击事件,
$(".update").click(function(){
alert("123456");
});
这个弹窗出不来
$(".update") 都是动态生产的,得用
delegate() 为指定的元素(属于被选元素的子元素)添加一个或多个事件处理程序,并规定当这些事件发生时运行的函数,使用 delegate() 的事件处理程序适用于当前或未来的元素(比如由脚本创建的新元素)
语法很简单:$(selector).delegate(childSelector,event,data,function)
举例:
$("#plate").delegate("li","click",function(){
var palteNo = $(this).find("span").text();
var spaceCode = $(this).find("h3").data("spacecode");
alert(spaceCode + palteNo);
});
$(".update").click(function(){
alert("123456");
});
这个方法先与""这个标签进行加载,单纯的"click"方法无法对未来增加的dom元素标签进行操作。
所以建议使用jq的$.delegate()方法,来对未来增加到页面中的元素进行操作。
$(document).delegate('.update', 'click', function() {
alert("123456");
})