MaterializeCSS 是一个基于 Material Design 的前端框架,它提供了美观的 UI 组件,包括复选框。jQuery 是一个流行的 JavaScript 库,用于简化 DOM 操作和事件处理。
MaterializeCSS 的复选框是通过 CSS 和 JavaScript 自定义实现的,而不是使用原生的 HTML 复选框。这会导致与 jQuery 的标准复选框处理方法不兼容的主要原因包括:
// 获取复选框状态
var isChecked = $('#your-checkbox-id').is(':checked');
// 设置复选框状态
$('#your-checkbox-id').prop('checked', true).trigger('change');
// 监听复选框变化
$('body').on('change', 'input[type="checkbox"]', function() {
console.log('Checkbox changed:', $(this).prop('checked'));
});
// 以编程方式改变复选框状态
$('#your-checkbox-id').prop('checked', true).change();
<div class="input-field">
<input type="checkbox" id="test5" />
<label for="test5">Red</label>
</div>
<script>
$(document).ready(function() {
// 初始化Materialize组件
M.AutoInit();
// 正确的事件监听方式
$('#test5').change(function() {
console.log('Checkbox state:', $(this).prop('checked'));
});
// 以编程方式改变状态
setTimeout(function() {
$('#test5').prop('checked', true).change();
}, 2000);
});
</script>
$(document).ready()
包裹代码.prop('checked')
而不是 .attr('checked')
change
事件$(document).on('change', 'input[type="checkbox"]', handler)
.change()
M.AutoInit()
.is(':checked')
或 .prop('checked')
通过以上方法,可以解决 MaterializeCSS 复选框与 jQuery 的兼容性问题。
没有搜到相关的文章