sxv*_*sxv 20 html javascript checkbox jquery click
我有两个功能.
第一个函数将div单击转换为选中/未选中的切换.第二个功能将复选框更改转换为隐藏/显示事件.
问题是当我使用第一个函数来检查/取消选中该框时,不会调用第二个函数.我是javascript的新手,谢谢.
<script type="text/javascript">
$(document).ready(function() {
$(":checkbox").parent().click(function(evt) {
if (evt.target.type !== 'checkbox') {
var $checkbox = $(":checkbox", this);
$checkbox.attr('checked', !$checkbox.attr('checked'));
evt.stopPropagation();
return false;
}
});
});
</script>
<script type="text/javascript">
$(document).ready(function() {
$(":checkbox").change(function() {
if($(this).attr("checked")) {
$('.'+this.id).show();
}
else {
$('.'+this.id).hide();
}
});
});
</script>
Run Code Online (Sandbox Code Playgroud)
Mat*_*ela 33
以编程方式更改复选框的值时,不会触发更改事件.你可以做些什么来确保它是:
$(":checkbox").parent().click(function(evt) {
if (evt.target.type !== 'checkbox') {
var $checkbox = $(":checkbox", this);
$checkbox.attr('checked', !$checkbox.attr('checked'));
$checkbox.change();
}
});
Run Code Online (Sandbox Code Playgroud)
不要打扰第一个片段.只需使用LABEL元素:
<label><input type="checkbox">Some option</label>
Run Code Online (Sandbox Code Playgroud)
现在,当用户单击标签(复选框旁边的文本)时,将激活该复选框.
第二个片段可以优化:
$('input:checkbox').change(function() {
$('#' + this.id).toggle(this.checked);
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
37122 次 |
| 最近记录: |