no es problema de variables globales o locales, los parametros que recibe no se pueden modificar dinamicamente salvo con algun metodo que los vueva a setear, fijate si encontras algun seter
fijate que creo una funcion para ver los datos y funciona bien, en tu codigo las variables cambian pero el valor en los parametros no van a cambiar porque estan seteados
fijate que cambian los valores de variables
Código HTML:
<html>
<head>
<title>Untitled</title>
<script src="http://code.jquery.com/jquery-latest.js"></script>
<script type="text/javascript">
function funcionAlerta (){
alert (nombre);
}
</script>
</head>
<body>
<input id="nombre" class="subir" type="text" value="name the pair of files" onclick="$(this).val('');" /> <span class="subir">*</span> <br />
<input id="autor" class="subir" type="text" value="author's name..." onclick="$(this).val('');" /> <span class="subir">*</span> <br /> <br />
<a href="#" class="subir" onclick="nombre = $('#nombre').val(); autor = $('#autor').val(); funcionAlerta(nombre +' '+autor)">Go!</a>
</body>
</html>