我有点坚持这个。我有一个javascript函数,在页面加载时,生成一个表单:
所有复选框都有“cls-select”类。我试图然后运行另一个函数(我现在已经安装了console.log)当任何这些复选框状态被更改但它没有检测到任何更改。
$(function() {
FormGenerate();
$('.cls-select').change(console.log('Something changed...'));
// ...
});
首次打开页面时,会显示日志消息。但是,无论选中/取消选中什么,都不会显示其他日志条目。
有人可以向我解释为什么会这样吗?我猜这是因为当浏览器加载.js文件时,页面上没有cls-select的复选框,所以没有“触发”的东西。
有没有办法绕过这个而不必重新开始?非常感谢任何帮助/建议。
答案 0 :(得分:2)
您的逻辑是将console.log('Something changed...')
执行的结果指定为事件处理程序,而这不是您期望做的事情。
通过
更改您的代码$('.cls-select').change(function(){
console.log('Something changed...');
});
答案 1 :(得分:0)
我认为这是因为当你试图为复选框设置'onchange'事件时,它们还没有出现。所以你应该像这样使用jQuery'on':
$( 'body' ).on( 'change', '.cls-select', function() {
console.log('changes!');
});
答案 2 :(得分:0)
您的代码中存在类似问题
$(function() {
FormGenerate();
$('.cls-select').change(function(){
console.log('Something changed...');
});
});