我在 JAVASCRIPT 中遇到问题,因为我使用一个函数制作了一个外部文件,该函数在按下菜单选项时将我重定向到一个页面,当在 onclick 事件中调用该函数时,我引用了我在外部 JS 中的函数但是它标记我未定义的浏览器,我的 JS 文件称为 eventosJS.js,我包含但未检测到该功能
$(document).ready(function() {
function myFunction(url) {
$.ajax({
url: url,
type: 'POST',
beforeSend: function() {
$("#muestraSeccion").html("<center><img src='../Images/cargando1.gif' height='50px' width='50px'/><br/>Un momento por favor...</center>");
$("#muestraInicio").hide();
},
success: function(response) {
$("#muestraSeccion").html(response).hide().fadeIn('fast');
},
error: function(xhr, error) {
if (xhr.status === 0) {
return ($("#mensajeError").html("<center>No conectado.\nPor favor verifica tu conexión a la red.</center>"));
} else if (xhr.status == 404) {
return ($("#muestraSeccion").html("<center><img src='../Images/error404.png' width='500px' height='350px' class='img img-responsive'/></center>").hide().fadeIn('slow'));
} else if (xhr.status == 500) {
return ($("#muestraSeccion").html("<center><img src='../Images/error500.png' width='500px' height='350px' class='img img-responsive'/></center>").hide().fadeIn('slow'));
} else if (error === 'parsererror') {
return ($("#mensajeError").html('<center>Falló la conversión JSON.</center>'));
} else if (error === 'timeout') {
return ($("#mensajeError").html('<center>Error time out.</center>'));
} else if (error === 'abort') {
return ($("#mensajeError").html('<center>Peticion Ajax cancelada.</center>'));;
} else {
return ($("#mensajeError").html('<center>Uncaught Error.\n' + xhr.responseText + '</center>'));
}
}
//complete: function () { $("#divCargandoFormAdmin").fadeOut('slow'); }
});
};
});
<html>
<head>
<title>@PageData("Title")</title>
@RenderSection("head", required:=False)
<link href="../Content/misEstilos.css" rel="stylesheet" />
<link rel="stylesheet" href="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css">
<link rel="stylesheet" href="https://rawgit.com/Eonasdan/bootstrap-datetimepicker/master/build/css/bootstrap-datetimepicker.min.css" />
<link href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/themes/base/jquery-ui.css" rel="stylesheet" type="text/css" />
<!-- jQuery library -->
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.2/jquery.min.js"></script>
<script src="../Scripts/jquery.validate.js"></script>
<script src="http://ajax.aspnetcdn.com/ajax/jquery.validate/1.11.1/jquery.validate.min.js"></script>
<script src="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js"></script>
<script src="../Scripts/moment.js"></script>
<script src="../Scripts/bootstrap-datetimepicker.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap-wizard/1.2/jquery.bootstrap.wizard.js"></script>
<script src="../Scripts/eventosJs.js"></script>
</head>
<body>
<div class="container-fluid" style="padding-top: 10px">
<!-- Static navbar -->
<nav class="navbar navbar-default" style="padding:5px">
<div class="container-fluid">
<div class="navbar-header">
<button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<a class="navbar-brand">
<span style="padding: 5px 5px 5px 5px; border-radius: 5px; box-shadow: 0 0 5px 3px orange;">
<img src="../Images/logof.png" width="60px" height="30px" style="margin-top: -10px;" /></a></span>
</div>
<div id="navbar" class="navbar-collapse collapse">
<ul class="nav navbar-nav">
<li class="active"><a href="#" onclick="myFunction('registro.html')"><span class="glyphicon glyphicon-plus"></span> Registrar Factura</a>
</li>
<li class="active"><a href="#" onclick="myFunction('Almacen.html')"><span class="glyphicon glyphicon-plus"></span> Registrar Series</a>
</li>
</ul>
<!-- opciones parte izquierda-->
<ul class="nav navbar-nav navbar-right">
<li><a href="../cerrarSesion">Cerrar sesión <span class="glyphicon glyphicon-off"></span></a>
</li>
</ul>
</div>
<!--/.nav-collapse -->
</div>
<!--/.container-fluid -->
</nav>
</div>
<div class="container-fluid" id="maximoPagina">
@RenderBody()
</div>
</body>
</html>
如果您使用浏览器的开发工具(您可以使用 F12 访问),您可以验证(使用网络选项卡)是否正确解析了 .js。
我建议你定义
~/
通过这种方式,对 .js 的引用是从站点的根目录进行的,并且在页面加载时包含它不会有问题。
当你定义一个函数时,不要把它放在 jquery 的 ready() 中,这只适用于标签中事件的分配。或者如果你定义
li
如果它进入 ready() 中,你的 onclick 会在哪里删除它,在较新的版本中你只需要定义不乏你把文件或准备好的()
考虑到您正在使用的是一个函数,因此不必将其包含在方法
ready()
中,这更适合执行某些操作或添加侦听器以及许多其他用途,但定义一个函数并不那么有趣将使用内联事件调用。您实际上是在另一个函数中定义一个函数。
那么解决方案是: