我想回调jQuery函数
$(function upload() {
.....
});
$("#select").change(function() {
upload();
});
控制台 未捕获的ReferenceError:未定义上传
答案 0 :(得分:1)
您实际上已经为快捷方式DOM ready事件处理程序提供了一个命名回调。您需要全局(或在相同的范围内)声明它。
此示例将它们放在相同的范围内:
$(function(){ // DOM ready handler
function upload() {
};
$("#select").change(function() {
upload();
});
});
由于该函数没有参数,因此缩写为:
$(function(){ // DOM ready handler
function upload() {
};
$("#select").change(upload);
});
更简洁的方法(如果函数没有被重用)只是将代码放在change
回调中:
$(function(){
$("#select").change(function() {
// Do the upload code here instead
});
});
答案 1 :(得分:0)
那是因为它在一个闭包内,因此不是全局的。删除$
包装,一切都应该没问题。
function upload() {
// (...) code
}
$("#select").change(function() {
upload();
})
或者将<select>
代码放在DOM ready包装器中。它也应该工作。或者声明它像
window.upload = function(){
// this is global
}
答案 2 :(得分:0)
尝试此操作:在upload
中定义一个函数$(function(){ });
,并在change
框的select
事件处理程序中调用它。
$(function(){
//define function
upload = function(){
....
}
$("#select").change(function() {
//call function
upload();
});
});
答案 3 :(得分:0)
您必须放置(“#select”)。更改Ready功能并在就绪功能之外上传功能。
function upload() {
// any thing you want to do after select
};
$( document ).ready(function() {
$("#select").change(function() {
upload();
})
});