添加参数时未调用回调
callback not getting called when adding arguments
我有一个javascript回调,当传递了参数时,它不会被调用。这在jsbin中是有效的,那么它在phonegap中不起作用有什么原因吗。这应该非常简单。
<input type="file" id="soundInput">
<script type="text/javascript">
var type = 0;
function addSoundToSoundMenu() {
alert("callback success.");
}
var soundInput = document.getElementById('soundInput');
soundInput.addEventListener('change', function(e) {
handleFileSelect(e, type,addSoundToSoundMenu);
}, false);
function handleFileSelect(event, type, cb) {
var file = this.files[0]; // FileList object
window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, function(fs) {
gotFS(fs,file,type);
}, fail);
}
</script>
上面的例子没有调用handleFileSelect()。只有在传递handleFileSelect时不带任何参数,它才有效。
soundInput.addEventListener('change',handleFileSelect,false);
当然,我删除了handleFileSelect()的参数以使其工作。
我有什么东西不见了吗。以编程方式创建输入字段是否会更改事件调度程序的处理方式。
还有什么我可以尝试的吗,也许是一些收尾的东西?以前有人对此有意见吗?我无法想象这与phoneGap有任何关系。
您没有将事件对象传递给handleFileSelect
函数。请你看看。
soundInput.addEventListener('change', function(e) {
handleFileSelect(e, type,addSoundToSoundMenu);
}, false);
感谢您的帮助,我发现了问题,只是为了结束问题,问题是
var file = this.files[0]; // FileList object
在handleFileSelect函数中。如果handlFileSelect不是事件的直接回调,则"this"不包含files对象。
哦,没有调试器编程的乐趣。。。
诅咒你,威尔!
相关文章:
- 为什么(如何)'这'从函数内部调用回调时发生更改
- 在初始函数完成之前调用回调函数
- Node.js exec调用从不调用回调
- 如何从参数数组中调用回调
- 如何在调用回调之前禁用按钮
- 加载文件,然后调用回调函数
- async.retry-已调用回调
- 节点.js“已调用回调”.但是没有任何其他回调
- JavaScript - 返回承诺和/或调用回调
- 解析查询.首次成功/错误 间歇性不调用回调
- 如何使用另一个 JavaScript 文件中定义的类名调用回调函数
- ReactJs:this.setState的情况下不调用回调函数
- $.post到PHP文件-在包含循环完成之前不会调用回调
- 异步加载ASP.NET绑定的Javascript,然后调用回调
- setTimeout()在其设置时间之前连续调用回调函数
- 在其他回调js中调用回调
- Ajax 调用重新加载页面,而不是调用回调函数
- Angularjs $http.get 不调用回调
- 未调用回调函数
- jQuery JSONP 不调用回调