【发布时间】:2016-05-01 00:30:33
【问题描述】:
我有这段代码来处理复选框检查事件:
<html>
<head>
<style>
#leftPane {
width: 200px;
height: 500px;
border: 1px solid;
float: left;
}
#rightPane {
height: 500px;
width: 600px;
border: 1px solid;
border-left: 0px;
float: left;
}
#addTo {
border: 1px solid;
}
#addTo input {
border: none;
}
#showList ul{
list-style: none;
}
</style>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.0/jquery.min.js"></script>
<script>
$(document).ready(function(){
$('#todoItem').keypress(function(e){
if (e.which ==13) {
var item = $('#todoItem').val();
var chkbox = "<input type='checkbox' name='"+item+"'>"
$("#showList ul").append("<li>"+chkbox+""+item+"</li>");
}
})
$("#showList li ul input[type=checkbox]").change(function(){
var $this = $(this);
alert("tell me");
/*if ($this.is(':checked')) {
$(this).parent().remove();
}*/
})
})
</script>
</head>
<body>
<div id="leftPane">
<ul>
<li>Shopping List</li>
<li>Movie List`</li>
<ul>
</div>
<div id="rightPane">
<p>Let's add some todo</p>
<div id="addTo">
<input id="todoItem" type="text" placeholder="Add a todo"></input>
</div>
<div id="showList">
<ul>
</ul>
</div>
</div>
</body>
当我点击复选框时,事件处理程序
( $("#showList li ul input[type=checkbox]").change(function(){ )
未触发(不出现警报)。如果我选择
$('#showList > ul").click (...)
然后事件处理程序触发,但这意味着单击ul 中的任何位置不一定是checkbox。
我按照这些链接来开发上述代码:
jQuery checkbox checked state changed event Use JQuery to check a checkbox in a parent list-item?
jsfiddle 页面:https://jsfiddle.net/
任何帮助将不胜感激。
谢谢
【问题讨论】:
-
有效的那个:$('#showlist ul li').on('change', 'input[type=checkbox]', function(event) { var $this = $(this ); $this.parent().remove(); });
标签: javascript jquery html