Javascript 将单击事件设置为每个(<;a>;内部a<;李>;要素
我一直在读一些关于它的帖子,但是我没有让它工作,我不知道为什么,我的想法是,当点击我的列表菜单时,它显示了这个范围Javascript 将单击事件设置为每个(<;a>;内部a<;李>;要素,javascript,jquery,html,Javascript,Jquery,Html,我一直在读一些关于它的帖子,但是我没有让它工作,我不知道为什么,我的想法是,当点击我的列表菜单时,它显示了这个范围 <ul class="nav navbar-nav side-nav"> <li class="active"> <a href="index.html"><i class="fa fa-fw fa-arrow-circle-o-right fa-2x"><
<ul class="nav navbar-nav side-nav">
<li class="active">
<a href="index.html"><i class="fa fa-fw fa-arrow-circle-o-right fa-2x"></i> Inicio</a>
</li>
<li>
<a href="RegistrarEspecialista.php" data-toggle="collapse" data-target="#demoF">Especialistas</a>
</li>
<li>
<a href="javascript:;" data-toggle="collapse" data-target="#demoCC">Pacientes<i class="fa fa-fw fa-caret-down"></i></a>
<ul id="demoCC" class="collapse">
<li>
<a href="RegistrarPaciente.php">Registro</a>
</li>
</ul>
</li>
<li>
<a href="javascript:;" data-toggle="collapse" data-target="#demo">Citas<i class="fa fa-fw fa-caret-down"></i></a>
<ul id="demo" class="collapse">
<li>
<a href="#">Registro</a>
</li>
<li>
<a href="#">Consultas</a>
</li>
</ul>
</li>
</ul>
这很好:
$(document).ready(function(){
$('.nav li a').click(function(e){
e.preventDefault();
alert($(this).find("span.t").text());
});
});
但是就像前面提到的showdev
一样,您将有一个空警报,因为html中没有
元素
我建议您首先执行preventDefault()
而不是执行其他操作,这是正确的顺序。这很好:
$(document).ready(function(){
$('.nav li a').click(function(e){
e.preventDefault();
alert($(this).find("span.t").text());
});
});
但是就像前面提到的showdev
一样,您将有一个空警报,因为html中没有
元素
我建议您首先执行preventDefault()
而不是执行其他操作,这是正确的顺序。您的初始选择器:
$('ul.nav navbar-nav side-nav li a')
是畸形的。也就是说,在父ul.nav
中查找所有navbar-nav
元素和side-nav
元素以及li a
元素。但是navbar-nav
和side-nav
是类。而且,即使如此,您的ul
也拥有所有三个类,因此您需要将它们链接起来:
$('ul.nav.navbar-nav.side-nav li a')
即使如此,这可能是一种比必要的选择器更具体的方式。我猜.side nav
是最明确的。然后甚至不需要声明标记名(过度指定可能会有问题)。因此,也许这是最好的:
$('.side-nav li a').on('click', function(e) {
// handler code
});
您的初始选择器:
$('ul.nav navbar-nav side-nav li a')
是畸形的。也就是说,在父ul.nav
中查找所有navbar-nav
元素和side-nav
元素以及li a
元素。但是navbar-nav
和side-nav
是类。而且,即使如此,您的ul
也拥有所有三个类,因此您需要将它们链接起来:
$('ul.nav.navbar-nav.side-nav li a')
即使如此,这可能是一种比必要的选择器更具体的方式。我猜.side nav
是最明确的。然后甚至不需要声明标记名(过度指定可能会有问题)。因此,也许这是最好的:
$('.side-nav li a').on('click', function(e) {
// handler code
});
您是否尝试了$('ul.nav li a')。改为单击(…)?我在您的HTML中没有看到任何
元素。您试图选择什么?您是否尝试了$('ul.nav li a')。改为单击(…)?我在HTML中没有看到任何
元素。你想选择什么?