yaqiukasi
2018-04-20 12:06
采纳率: 91.7%
浏览 6.0k
已采纳

为什么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条回答 默认 最新

  • Haisen大王 2018-04-20 12:33
    已采纳

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

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

    已采纳该答案
    评论
    解决 无用
    打赏 举报
  • Haisen大王 2018-04-20 12:34

    举例:
    $("#plate").delegate("li","click",function(){
    var palteNo = $(this).find("span").text();
    var spaceCode = $(this).find("h3").data("spacecode");
    alert(spaceCode + palteNo);
    });

    评论
    解决 无用
    打赏 举报
  • lazycat92 2018-05-12 06:43

    $(".update").click(function(){
    alert("123456");
    });
    这个方法先与""这个标签进行加载,单纯的"click"方法无法对未来增加的dom元素标签进行操作。

    所以建议使用jq的$.delegate()方法,来对未来增加到页面中的元素进行操作。
    $(document).delegate('.update', 'click', function() {
    alert("123456");
    })

    评论
    解决 无用
    打赏 举报

相关推荐 更多相似问题