这里有一个保存按钮,希望点击之后把"+"和"-"绑的点击事件取掉了,发现“+”的可以取消,“-”的失效了。为什么?(CSS 和字体忽略。。。)
HTML
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<link rel="stylesheet" type="text/css" href="../style/base.css" rel="stylesheet">
<link rel="stylesheet" type="text/css" href="../font/iconfont.css" rel="stylesheet">
<link rel="stylesheet" type="text/css" href="../style/common.css">
<script type="text/javascript" src="https://apps.bdimg.com/libs/jquery/2.1.2/jquery.min.js"></script>
</head>
<body>
<div class="wrapper" style="width: 1146px;margin: 0 auto;">
<div class="page-default-item">
<div class="page-head">
<div class="page-btitle">
<span class="vertically">第一版 要闻</span>
</div>
<div style="width:496px;display: table-cell;font-size: 0;line-height: 1;">
<div class="page-score-title-box">
<div class="page-score-title">责编&得分</div>
<div class="page-score-title-body">
<div class="add-btn-box">
<div class="add-btn vertically">
<i class="icon iconfont icon-shanchu2 append-btn"></i>
</div>
</div>
<div class="person-choosed-box">
<ul class="choosed-wrapper">
<li class="person-choosed-item">
<span>赵大猫</span>
<input type="text" name="" value="98">
<i class="icon iconfont icon-shanchu11"></i>
</li>
<li class="person-choosed-item">
<span>赵大猫</span>
<input type="text" name="" value="98">
<i class="icon iconfont icon-shanchu11"></i>
</li>
</ul>
</div>
</div>
</div>
<div class="page-score-title-box">
<div class="page-score-title">组版&得分</div>
<div class="page-score-title-body">
<div class="add-btn-box">
<div class="add-btn vertically">
<i class="icon iconfont icon-shanchu2"></i>
</div>
</div>
<div class="person-choosed-box">
<ul>
<li class="person-choosed-item">
<span>赵大猫</span>
<input type="text" name="" value="98">
<i class="icon iconfont icon-shanchu11"></i>
</li>
<li class="person-choosed-item">
<span>赵大猫</span>
<input type="text" name="" value="98">
<i class="icon iconfont icon-shanchu11"></i>
</li>
</ul>
</div>
</div>
</div>
<div class="preview-box">
<span class="vertically">查看</span>
</div>
</div>
</div>
<div class="page-body">
<div id="page-body-wrapper">
<div class="page-body-head">
<div class="page-body-head-wrapper">
<div class="page-body-head-item tit">文章标题</div>
<div class="page-body-head-item word">字数</div>
<div class="page-body-head-item brower">浏览量</div>
<div class="page-body-head-item type">稿件类型</div>
<div class="page-body-head-item grade">稿件等级</div>
<div class="page-body-head-item reporter">责编&得分</div>
<div class="page-body-head-item corresp">责编&得分</div>
<div class="page-body-head-item preview"></div>
</div>
</div>
<div class="page-body-list">
<div class="page-body-list-wrapper">
<div class="page-body-list-item tit">
<div class="vertically width_full">文章标题文章标题文章标</div>
</div>
<div class="page-body-list-item word">
<div class="vertically width_full">字数</div>
</div>
<div class="page-body-list-item brower">
<div class="vertically width_full">浏览量</div>
</div>
<div class="page-body-list-item type">
<div class="vertically width_full">稿件类型</div>
</div>
<div class="page-body-list-item grade">
<div class="vertically width_full">稿件等级</div>
</div>
<div class="page-body-list-item add-btn-box add-btn-box2">
<div class="add-btn vertically">
<i class="icon iconfont icon-shanchu2"></i>
</div>
</div>
<div class="page-body-list-item person-choosed-box person-choosed-box2" style="vertical-align: top;width: 184px;">
<ul>
<li class="person-choosed-item">
<span>赵大猫</span>
<input type="text" name="" value="98">
<i class="icon iconfont icon-shanchu11"></i>
</li>
<li class="person-choosed-item">
<span>赵大猫</span>
<input type="text" name="" value="98">
<i class="icon iconfont icon-shanchu11"></i>
</li>
</ul>
</div>
<div class="page-body-list-item add-btn-box add-btn-box2">
<div class="add-btn vertically">
<i class="icon iconfont icon-shanchu2"></i>
</div>
</div>
<div class="page-body-list-item person-choosed-box person-choosed-box2" style="vertical-align: top;width: 184px;">
<ul>
<li class="person-choosed-item">
<span>赵大猫</span>
<input type="text" name="" value="98">
<i class="icon iconfont icon-shanchu11"></i>
</li>
<li class="person-choosed-item">
<span>赵大猫</span>
<input type="text" name="" value="98">
<i class="icon iconfont icon-shanchu11"></i>
</li>
</ul>
</div>
<div class="page-body-list-item preview">
<div class="vertically width_full">查看</div>
</div>
</div>
</div>
</div>
<div class="action-btn-box">
<button class="inline_block save-btn">保存</button>
<div class="inline_block slide-box" id="slide-up">收起
<i class="icon iconfont icon-shouqi"></i>
</div>
<div class="inline_block slide-box" id="slide-down" style="display:none;">展开
<i class="icon iconfont icon-shouqi1"></i>
</div>
</div>
</div>
</div>
</div>
<script type="text/javascript" src="../js/common.js"></script>
</body>
</html>
JS:
// 10.11
$(document).ready(function() {
// 收起展开效果
$(".slide-box").click(function() {
$("#page-body-wrapper").slideToggle("slow");
$('#slide-up').toggle();
$('#slide-down').toggle();
});
$(".add-btn").on("click",function(){
var obj = '<li class=\"person-choosed-item\"><span>赵大猫</span><input type=\"text\" name=\"\" value=\"98\"><i class=\"icon iconfont icon-shanchu11\"></i></li>';
$(this).closest('.add-btn-box').next().children().append(obj).click(delLi).end();
});
//删除方法
function delLi(e) {
if ($(e.target).hasClass("icon-shanchu11")) {
if ($(e.target).parent().parent().find("li").length > 1) {
$(e.target).parent().remove();
}
}
e.stopPropagation();
}
//删除
$('.icon-shanchu11').on("click",delLi);
//保存
$(".save-btn").on("click",function(e){
$(".add-btn").off("click");
$(".icon-shanchu11").off("click");
});
});
你的代码有2个问题
1. 新增的元素被你绑了click事件,所以依然有效
2. on和off用法错误
on的文档,点击查看官方文档,off同理
当要处理动态元素的时候,on的对象应该提升层级,即
container.on
,而on
方法的selector
参数才是动态的元素,如此才能对动态元素进行事件处理。js可以改成如下