运行jquery .on('change')

时间:2016-02-04 12:10:11

标签: javascript jquery

是否可以运行Jquery .on('change')内部的函数。
原因是我想在选择更改时以及页面加载时加载此函数。
是的

$(document).ready(function(){
  //Load function on pageload
  sum();

  //Load function on 'change'
  $('.ChooseMonth').on('change', function sum(){
     console.log('Loaded');
  });

当页面加载时,此代码不起作用..

5 个答案:

答案 0 :(得分:2)

  

,由于sum不在全局范围内,因此会抛出错误Uncaught ReferenceError: sum is not defined

这方面的解决方法很少:

1)创建另一个函数并执行它。同时传递与更改侦听器处理程序相同的函数。

$(document).ready(function() {
  var sum = function() {
    snippet.log('Loaded');
  };
  sum();
  $('.ChooseMonth').on('change', sum);
});
<script src="http://tjcrowder.github.io/simple-snippets-console/snippet.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
<input type="checkbox" class='ChooseMonth'>

2) trigger更改事件,这将调用基于change的{​​{1}}事件

input element
$(document).ready(function() {
  $('.ChooseMonth').on('change', function() {
    snippet.log('Loaded');
  }).change();
});

答案 1 :(得分:1)

尝试在DOM准备好后调用change事件,

$(document).ready(function(){
  $('.ChooseMonth').on('change', function{
     console.log('Loaded');
  }).change();
});

答案 2 :(得分:1)

移动你的逻辑并不是更漂亮:

$(document).ready(function(){
  //Load function on pageload
  sum();

  //Load function on 'change'
  $('.ChooseMonth').on('change', sum);

function sum(){
     console.log('Loaded');
  });

答案 3 :(得分:1)

你看错了,不要在变更监听器中运行函数,在变更时调用函数,也可以在其他时间调用:

var myFunc = function() {
  //do something
}


$('.ChooseMonth').change(function(e) { myFunc(); });

myFunc();

答案 4 :(得分:0)

$('.ChooseMonth').change(Your_function_name_goes_here);