[英]Javascript button onclick function undefined
im currently using PhoneGap and for some reason when i click a button, the function is undefined. 我目前正在使用PhoneGap,出于某种原因,当我点击一个按钮时,该功能是未定义的。 iv tryed putting it inside the deviceReady function, as well as the document ready function, but neither seemed to make a difference. iv尝试将它放在deviceReady函数中,以及文档就绪函数,但似乎都没有区别。
I can't see what the problem is, if anyone can help that would be great. 我看不出有什么问题,如果有人能提供帮助那就太好了。
My HTML: 我的HTML:
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<meta name="format-detection" content="telephone=no" />
<meta name="viewport" content="user-scalable=no, initial-scale=1, maximum-scale=1, minimum-scale=1, width=device-width, height=device-height, target-densitydpi=device-dpi" />
<link rel="stylesheet" type="text/css" href="css/jquery.mobile-1.3.0.min.css" />
<link rel="stylesheet" type="text/css" href="css/jquery.mobile.structure-1.3.0.min.css" />
<link rel="stylesheet" type="text/css" href="css/jquery.mobile.theme-1.3.0.min.css" />
<link rel="stylesheet" type="text/css" href="css/index.css" />
<script type="text/javascript" src="cordova-2.5.0.js"></script>
<script type="text/javascript" src="cordova.js"></script>
<script type="text/javascript" src="phonegap.js"></script>
<script type="text/javascript" src="js/libary.js"></script>
<script type="text/javascript" src="js/jquery-1.9.1.min.js"></script>
<script type="text/javascript" src="js/jquery.mobile-1.3.0.min.js"></script>
<title>Libary</title>
</head>
<body>
<div id="capture" class="wrapper" data-role="page">
<div data-role="header">
<h1>Libary</h1>
</div>
<div data-role="content" class="app">
<a href="#" data-role="button" onclick="retrievePicture();">Retrieve Photo</a>
<p id="pictureStatus"></p>
<div id="imagelocation">
<img id="capturedImage"></img>
</div>
</div>
</div>
</body>
</html>
My JavaScript/jQuery: 我的JavaScript / jQuery:
document.addEventListener("deviceready", onDeviceReady, false);
var platform;
function onDeviceReady() {
//Find out what platform the device is running
platform = device.platform;
//Camera Section
function retrievePicture() {
// Take a picture using device camera and retrieve image
//navigator.camera.getPicture(onCaptureSuccess, onCaptureFail, {Camera.sourceType = Camera.PictureSourceType.PHOTOLIBRARY});
$('#pictureStatus').text("hello");
}
function onCaptureSuccess(imageData) {
$('#capturedImage').css("display", "block");
var imageLocation = imageData;
$('#capturedImage').attr("src", imageLocation);
$('#pictureStatus').text(imageLocation);
}
function onCaptureFail(message) {
$('#pictureStatus').text(message);
}
}
Please don't define functions inside functions like that. 请不要在这样的函数内定义函数。 Remove your retrievePicture()
from inside the onDeviceReady()
function and it should work fine. 从onDeviceReady()
函数中删除你的retrievePicture()
,它应该可以正常工作。
As mentioned by @Robin van Baalen, this may be an interesting and relevant read - What you need to know about Javascript scoping . 正如@Robin van Baalen所提到的,这可能是一个有趣且相关的阅读 - 您需要了解的有关Javascript范围的知识 。
Also, Functions and function scope . 另外, 功能和功能范围 。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.