Javascript onclick在laravel中未按预期工作
我的页面中有链接,当用户点击链接时,它会给我一个对话框,所以为了测试,我编写了以下代码 这是我的“视图””代码Javascript onclick在laravel中未按预期工作,javascript,jquery,laravel,laravel-5.2,Javascript,Jquery,Laravel,Laravel 5.2,我的页面中有链接,当用户点击链接时,它会给我一个对话框,所以为了测试,我编写了以下代码 这是我的“视图””代码 <div class="panel-body"> <br> <form class="form-horizontal" role="form" method="POST" action="{{ url('/unsayd') }}"> {{ csrf_fie
<div class="panel-body">
<br>
<form class="form-horizontal" role="form" method="POST" action="{{ url('/unsayd') }}">
{{ csrf_field() }}
<div class="form-group">
<div class="col-md-6">
@foreach ($posts as $post)
<article class = "post" data-postid="{{ $post->id }}">
<p>{{$post->userpost}}</p>
<div class='info'>
Posted by {{ $post->user->name }} on {{ $post->user->created_at}}
</div>
<div class = 'interaction'>
<a href=#>Like </a> |
@if(Auth::user() == $post->user)
|
<a href="#" class="edit">Edit</a> |
<a href="{{ route('post.delete', ['post_id' => $post->id]) }}">Delete</a>
@endif
@endforeach
</div>
</div>
<div class="modal fade" tabindex="-1" role="dialog" id="edit-modal">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button>
<h4 class="modal-title">Edit Post</h4>
</div>
<div class="modal-body">
<form>
<div class="form-group">
<label for="post-body">Edit the Post</label>
<textarea class="form-control" name="post-body" id="post-body" rows="5"></textarea>
</div>
</form>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
<button type="button" class="btn btn-primary" id="modal-save">Save changes</button>
</div>
</div><!-- /.modal-content -->
</div><!-- /.modal-dialog -->
</div><!-- /.modal -->
}))
当我点击编辑按钮时,我在控制台中看不到任何东西,但它应该显示“它工作”
这是主布局中包含的脚本
<script src="//code.jquery.com/jquery-1.12.0.min.js"></script>
<script src="//code.jquery.com/jquery-migrate-1.2.1.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js" integrity="sha384-0mSbJDEHialfmuBBQP6A4Qrprq5OVfW37PRR3j5ELqxss1yVqOtnepnHVP9aJ7xS" crossorigin="anonymous"></script>
<script src="{{ URL::to('src/js/app.js') }}"></script>
app.js存储在public\src\js\app.js中
这里的问题是什么?解决问题的可能方法是什么?
注意:当我单击编辑时,我可以看到app.js在运行artisan serve后正在cmd中加载。我也遇到了同样的问题。以下是我如何绕过它的: 以下是视图:
<button id="testButton" type=""button">Click me</button>
希望这有帮助。我认为脚本是在呈现元素之前执行的。对于这种情况,您可以使用dom就绪处理程序,它将在dom就绪时执行
$(document).ready(function() {
$('.post .interaction a:eq(2)').click(function() {
console.log('It works');
});
})
两个问题:
- jQuery代码需要包装在DOM就绪处理程序中,以确保在尝试访问元素时元素存在
是基于零的,因此.eq()
将选择删除按钮而不是编辑。编辑按钮需要.eq(2)
.eq(1)
edit
,因此使用该类而不是eq()
,更合适
如果你有多个表单,那么给它一个唯一的类或ID,并在上面使用。在dom reaqdy Event中包装绑定代码我是一个非常初学者,你能用初学者的方式来理解它吗试试这个代码$(document).ready(function(){$('.post.interaction a:eq(2))。单击(function(){console.log('it works');})不,它不工作尝试此$(文档);
<button id="testButton" type=""button">Click me</button>
$(document).on('click', '#testButton', function () {
console.log('clicked!');
});
$(document).ready(function() {
$('.post .interaction a:eq(2)').click(function() {
console.log('It works');
});
})
$(function(){
$('form.form-horizontal').on('click', '.post .interaction .edit', function(){
console.log('It works');
});
});