的Javascript遗漏的类型错误:showcreate1不是一个函数
我之前读写这个问题,其他的问题,但没有工作,我检查JavaScript加载完成后,我尝试使用jQuery的是我过去$但没有..的Javascript遗漏的类型错误:showcreate1不是一个函数
我的问题是ajax不工作,错误是标题问题。
我有一些看法,menu.blade.php代码:
@extends('cms.public.layouts.default')
@section('content')
<div class="col-md-10">
<h3 style="letter-spacing:40px;text-align:center;color:f15d5e;">PROYECTOS</h3>
</div>
<div class="col-md-2" style="padding:20px;">
<button type="button" id="buttoncreate" class="btn btn-danger">Crear Proyecto</button>
</div>
<div class="col-md-12" id="ajaxwindow">
</div>
<script>
$(document).ready(function(){
listProject();
$("#buttoncreate").click(function(e){
$("#buttoncreate").remove();
e.preventDefault();
listUploadProject();
});
});
var listProject = function()
{
$.ajax({
type:'get',
url:"{{ url('admin/project/listall') }}",
success: function(data){
$('#ajaxwindow').empty().html(data);
}
});
}
var listUploadProject = function()
{
$.ajax({
type:'get',
url:"{{ url('admin/project/create') }}",
success: function(data){
$('#ajaxwindow').empty().html(data);
}
});
}
</script>
@stop
在此视图中,我使用Ajax和正在工作时,它示出了该图(listall.blade.php):
<table class="table">
<thead style="color:white">
<tr>
<th>Id</th>
<th>Slug</th>
<th>Order</th>
<th>Public</th>
<th>Path header</th>
<th>Path home</th>
<th>Fecha creación</th>
<th>Fecha ultima actualización</th>
<th><span class="glyphicon glyphicon-cog"></span></th>
</tr>
</thead>
<tbody style="color:white">
@foreach ($projects as $key => $project)
<tr>
<th>{{$project->id}}</th>
<td>{{$project->slug}}</td>
<td>{{$project->order}}</td>
<td>{{$project->public}}</td>
<td>{{$project->pathheader}}</td>
<td>{{$project->pathhome}}</td>
<td>{{ date('M j, Y', strtotime($project->created_at))}}</td>
<td>{{ date('M j, Y', strtotime($project->updated_at))}}</td>
<td><a href="{{ route('admin.projects.show', $project->id)}}" class="btn btn-info btn-sm">View</a> <a href="{{ route('admin.project.edit', $project->id)}}" class="btn btn-success btn-sm">Edit</a>
@endforeach
</tr>
</tbody>
</table>
<br><br>
如果我按钮点击创建他去这个观点(createproject.blade.php):
<div class="col-md-8 col-md-offset-2" id="createproject">
</div>
<br><br><br>
<script>
$(document).ready(function(){
showcreate1();
});
var showcreate1 = function()
{
$.ajax({
type:'get',
url:"{{ url('admin/project/createform1') }}",
success: function(data){
$('#createproject').empty().html(data);
}
});
}
</script>
网址“/管理/项目/ createform1”我s由控制器调用:
public function CreateProjectForm1()
{
return view('cms.public.views.projects.createprojectform1');
}
<div class="col-md-10">
<h3>Crear nuevo proyecto</h3>
</div>
<div class="col-md-2">
<h3>1/2</h3>
</div>
<hr>
<div class="col-md-12" id="formcreateproject">
<form method="POST" action="{{ route('admin.projects.store') }}" enctype="multipart/form-data">
<div class="form-group">
<label name="title">Slug:</label>
<input type="text" id="slug" name="slug" placeholder="ejemplo-de-slug" class="form-control form-control-sm">
<label name="order">Order:</label>
<input type="number" id="order" name="order" class="form-control form-control-sm">
<label name="public">Public:</label>
<input type="number" id="public" name="public" class="form-control form-control-sm">
<label name="body">Header</label>
<input type="file" name="pathheader" id="pathheader" class="form-control-file" aria-describedby="fileHelp"><br>
<label name="body">Home</label>
<input type="file" name="pathhome" id="pathhome" class="form-control-file" aria-describedby="fileHelp"><br>
<input type="submit" value="Crear Proyecto" id="createprojectsubmit" class="btn btn-danger btn-md">
<input type="hidden" name="_token" value="{{ Session::token() }}">
<br><br><br>
</div>
</form>
</div>
为什么最后一个视图没有加载?
非常感谢,任何帮助将不胜感激。
尝试使用此
showcreate1 = function()
{
$.ajax({
type:'get',
url:"{{ url('admin/project/createform1') }}",
success: function(data){
$('#createproject').empty().html(data);
}
});
}
没有变种。用var声明它会限制它的范围。除去VAR将使其可在页面访问的任何地方全局函数,或做到这一点,而不是
$(document).ready(function(){
var showcreate1 = function()
{
$.ajax({
type:'get',
url:"{{ url('admin/project/createform1') }}",
success: function(data){
$('#createproject').empty().html(data);
}
});
}
showcreate1();
});
showcreate1不是一个函数,因为您在定义它之前调用它。 将var showcreate1 = function() {}
更改为function showcreate1() {}
或者只是将文档就绪代码移到函数定义的下面。
在JavaScript您在代码中声明它 – taha
是,使用函数声明之前,你可以使用一个函数,而不是函数表达式。 – user1121487
为真。函数表达式不会被悬挂,所以它们不能被使用,直到它们出现在代码中 – taha
没有栏错误更改,现在retorn是showcreate1没有被声明 –
第二个选项是成功的,也许渲染视图和函数没有加载?或者,为什么,如果你首先声明了这个函数,它的工作原理? –
你的声明中的'var'实际上使它成为一个局部变量,这个变量对于你的用法是不可访问的,这个变量是在页面准备就绪时执行的函数中。 请标记答案,如果正确:D – perseusl