添加文档加载时无法检测复选框更改

时间:2014-03-14 13:40:30

标签: javascript jquery

我有点坚持这个。我有一个javascript函数,在页面加载时,生成一个表单:

所有复选框都有“cls-select”类。我试图然后运行另一个函数(我现在已经安装了console.log)当任何这些复选框状态被更改但它没有检测到任何更改。

$(function() {
  FormGenerate();

  $('.cls-select').change(console.log('Something changed...'));
  // ...
});

首次打开页面时,会显示日志消息。但是,无论选中/取消选中什么,都不会显示其他日志条目。

有人可以向我解释为什么会这样吗?我猜这是因为当浏览器加载.js文件时,页面上没有cls-select的复选框,所以没有“触发”的东西。

有没有办法绕过这个而不必重新开始?非常感谢任何帮助/建议。

3 个答案:

答案 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...');
   });

});