在我的项目中,我有以下页面,这是一个仪表板,其中包含指向我应用程序所有部分的链接:
<div class="navbar navbar-inverse navbar-fixed-top" role="navigation">
<div class="container">
<div class="navbar-header">
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
<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" href="#">LigaDesportiva</a>
</div>
<div class="collapse navbar-collapse">
<ul class="nav navbar-nav">
<li><a href="clube.html">Clubes</a></li>
<li><a href="dirigente.html">Dirigentes</a></li>
<li><a href="jogadore.html">Jogadores</a></li>
<li><a href="liga.html">Ligas</a></li>
<li><a href="usuario.html">Usuários</a></li>
</ul>
<ul class="nav navbar-nav navbar-right">
<li class="dropdown"> <a class="dropdown-toggle" data-toggle="dropdown">${usuario.nome} <b class="caret"></b></a>
<ul class="dropdown-menu">
<li><a href="usuario_perfil.html">Perfil</a></li>
<li><a href="usuario_historico.html">Histórico</a></li>
<li><a href="logout.html">Sair</a></li>
</ul>
</li>
</ul>
</div><!--/.nav-collapse -->
</div>
</div>
<div class="container">
<div id="data"></div>
</div><!-- /.container -->
JS调用
<script src="js/jquery-2.1.0.min.js"></script>
<script src="js/bootstrap.min.js"></script>
<script src="js/bootstrap-dialog.min.js"></script>
页面END的JS
$('a').click(function(){
$.get($('a').attr('href'), function(destino){
alert('destino = '+destino);
});
BootstrapDialog.show({
title: 'Draggable Dialog',
message: 'destino = '+destino+' .Try to drag on dialog title to move your dialog.',
draggable: true
});
});
页面末尾的jquery代码应该捕获&#39;点击&#39;事件并显示警报(现在仅用于测试)和BootstrapDialog,但这是机器人发生的事情。我做错了什么?
答案 0 :(得分:1)
在解析页面之前,可以调用将处理程序绑定到click事件的代码$('a').click(function(){
,在这种情况下,选择器$('a')
不是&#39;获得锚元素。
此外,在处理程序中,您在文档中所有链接上执行$ .get。我假设您只想要点击的链接,您可以使用$(this)
获得。
最后,您需要阻止元素上的click事件的默认行为。
试试这个,而不是:
<script>
// The ready event handler is called after the page is ready.
$().ready(function () {
$('a').click(function(e) {
e.preventDefault();
$.get($(this).attr('href'), function(destino) {
alert('destino = '+destino);
});
BootstrapDialog.show({
title: 'Draggable Dialog',
message: 'destino = '+destino+' .Try to drag on dialog title to move your dialog.',
draggable: true
});
});
});
</script>
答案 1 :(得分:0)
将页面底部的JS部件更改为:
$('a').click(function(event){
event.preventDefault();
$.get($('a').attr('href'), function(destino){
alert('destino = '+destino);
BootstrapDialog.show({
title: 'Draggable Dialog',
message: 'destino = '+destino+' .Try to drag on dialog title to move your dialog.',
draggable: true
});
});
});
如果这也不起作用,也许你应该等到DOM就绪了。但不确定这一点,因为您的JS代码位于页面的底部,因此在执行脚本块时应加载HTML。
您还需要event.preventDefault();
取消链接默认点击操作。
答案 2 :(得分:0)
write your code inside document.ready()
<script>
$(document).ready(function(){
$('a').click(function(){
$.get($('a').attr('href'), function(destino){
alert('destino = '+destino);
});
BootstrapDialog.show({
title: 'Draggable Dialog',
message: 'destino = '+destino+' .Try to drag on dialog title to move your dialog.',
draggable: true
});
});
});
</script>