У меня проблема в 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(), что в более новых версиях вам нужно только определитьнет недостатка в том, чтобы вы положили документ или готовый ()
Принимая во внимание, что то, что вы используете, является функцией, нет необходимости включать ее в метод
ready()
, это более уместно для выполнения чего-либо или добавления слушателя среди многих других применений, но менее интересно определять функцию, которая будет вызываться со встроенным событием.Фактически вы определяете функцию внутри другой функции.
Тогда решение: