我希望当我点击编辑帖子下拉链接时,会打开一个模态但除了刷新页面之外什么也没发生。
我的布局视图中包含的脚本:
<script src="https://code.jquery.com/jquery-1.12.0.min.js" ></script>
<script src="https://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="src/js/myplace.js"></script>
HTML code:
@if(Auth::user()==$post->user)
<ul id="remove" class="dropdown-menu" role="menu">
<a id="remove2" href="{{route('post.delete',['post_id' => $post->id])}}">
<li id="remove3" role="presentation">Remove This Post </li>
</a>
<a id="remove2" href="">
<li id="remove3" role="presentation">Edit This Post </li>
</a>
</ul>
@endif
我的JS档案:
$('#remove2').find('li').on('click' , function(){
$('#edit-modal').modal();
});
答案 0 :(得分:1)
您的示例没有Bootstrap模式HTML,但我假设您在页面上有此。
你有几个问题在继续。首先,您有多个具有相同ID的元素,这是您无法做到的。 ID必须是唯一的。
其次,您正在对链接元素使用单击操作,可能会触发其默认行为。
将您的HTML更改为
@if(Auth::user()==$post->user)
<ul id="remove" class="dropdown-menu" role="menu">
<a id="remove2" href="{{route('post.delete',['post_id' => $post>id])}}">
<li role="presentation">Remove This Post </li>
</a>
<a id="remove3" href="">
<li role="presentation">Edit This Post </li>
</a>
</ul>
@endif
你的JavaScript
$('#remove3').on('click' , function(e){
e.preventDefault();
$('#edit-modal').modal();
});
您需要阻止链接的默认行为才能用于打开模式。由于点击事件发生在链接元素
上,因此没有理由将列表元素作为目标答案 1 :(得分:1)
你可以通过修改你的代码来做到这一点,正如Rob Fonseca在上面的回答中所建议的那样,但是这里有其他可能适合你的解决方案。
这是你的下拉菜单
@if(Auth::user()==$post->user)
<ul class="dropdown-menu">
<li><a href="#">Remove</a></li> //Replace with your code
<li><a href="#" onclick="editPost({{ $post>id }})">Edit</a></li>
</ul>
@endif
你可以随意使用Id,但要确保它是唯一的。
这是Javascript功能
function editPost(postId){
//Here You can do more stuff like make ajax call to load post data...
$('#editPostModel').modal();
}
您可以在此处找到工作示例:JsFiffle
答案 2 :(得分:0)
如果您使用的是 Bootstrap 5.0,则 bootstrap.js
或 app.js
代码中的 data-dismiss
选择器似乎已更改为 data-bs-dismiss
。
所以我只需要将 data-dismiss="modal"
更改为 data-bs-dismiss="modal"
就可以了。
Version: Laravel 8