为什么a标签点击不生效
 <%@ 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");
            });
这个弹窗出不来




3个回答

$(".update") 都是动态生产的,得用

delegate() 为指定的元素(属于被选元素的子元素)添加一个或多个事件处理程序,并规定当这些事件发生时运行的函数,使用 delegate() 的事件处理程序适用于当前或未来的元素(比如由脚本创建的新元素)
语法很简单:$(selector).delegate(childSelector,event,data,function)

yaqiukasi
yaqiukasi 十分感谢你的回答,问题已解决
2 年多之前 回复

举例:
$("#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");
})

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐