是否可以运行Jquery .on('change')
内部的函数。
原因是我想在选择更改时以及页面加载时加载此函数。
是的
$(document).ready(function(){
//Load function on pageload
sum();
//Load function on 'change'
$('.ChooseMonth').on('change', function sum(){
console.log('Loaded');
});
当页面加载时,此代码不起作用..
答案 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);