JQuery-将单击事件添加到LI或SPAN元素?

JQuery-将单击事件添加到LI或SPAN元素?,jquery,asp.net-mvc,events,Jquery,Asp.net Mvc,Events,我试图向LI元素添加一个单击事件,但它没有在页面中触发。我的页面标记如下所示: <div id="Navigation"> <ul> <li class="navPrevNext inactive">|&lt; First Page</li> <li class="navPrevNext inactive">&lt; Prev Page</li> <li class="navIn

我试图向LI元素添加一个单击事件,但它没有在页面中触发。我的页面标记如下所示:

<div id="Navigation">
<ul>
    <li class="navPrevNext inactive">|&lt; First Page</li>
    <li class="navPrevNext inactive">&lt; Prev Page</li>
    <li class="navIndex selected" title="0 ">1</li>
    <li class="navIndex notselected" title="1 ">2</li>
    <li class="navIndex notselected" title="2 ">3</li>
    <li class="navPrevNext active" title="1">Next Page &gt;</li>
    <li class="navPrevNext active" title="2">Last Page &gt;|</li>
</ul>
</div>
有什么想法吗


TIA

您确定代码中包含了jquery 1.3吗?当我单击任何LIs时,以下操作对我来说都很好(直接复制并粘贴您的问题):

<html>
<head>
<script type="text/javascript" src="jquery-1.3.2.min.js"></script>
<script type="text/javascript">
function updateNavigation(title) {
    alert(title);
}

$("#Navigation li").live('click', function(e) { 
    e.preventDefault; 
    this.blur(); 
    return updateNavigation($(this).attr('title')); 
});

</script>
</head>
<body>
<div id="Navigation">
<ul>
    <li class="navPrevNext inactive">|&lt; First Page</li>
    <li class="navPrevNext inactive">&lt; Prev Page</li>
    <li class="navIndex selected" title="0 ">1</li>
    <li class="navIndex notselected" title="1 ">2</li>
    <li class="navIndex notselected" title="2 ">3</li>
    <li class="navPrevNext active" title="1">Next Page &gt;</li>
    <li class="navPrevNext active" title="2">Last Page &gt;|</li>
</ul>
</div>
</body>
</html>

函数更新(标题){
警报(标题);
}
$(“#导航li”).live('click',函数(e){
e、 防止违约;
这个。blur();
返回updateNavigation($(this.attr('title'));
});
  • |第一页
  • 上一页
  • 1
  • 2
  • 3
  • 下一页 最后一页|

你确定你的updateNavigation函数工作正常吗?也许它被触发了,但里面有点不对劲…

我和@Parrots做了同样的事情,它对我很有效。但是,您可能希望将选择器更改为:

$("#Navigation li[title]" ).live('click', function(e) {
     e.preventDefault;
     this.blur();
     return updateNavigation($(this).attr('title'));
});

因此,处理程序只应用于具有title属性的元素。

我遇到了一个类似的问题,当时我使用的是用户选择的弹出列表。基本上,用户点击一个输入框,就会显示ul


这对于500毫秒的动画效果很好,但是当切换到250毫秒时,向下滚动的动画速度太快,显然单击事件从未在li上触发。

不要使用span,它最好委托一件事:e.preventDefault应该是e.preventDefault(),我的开发环境正在密谋反对我。重新启动后,我的JS文件被更新,并按预期工作。似乎旧文件被保存在临时缓存中。谢谢你的确认!谢谢-我会试试的!(避免错误比以后处理错误更好)
$("#Navigation li[title]" ).live('click', function(e) {
     e.preventDefault;
     this.blur();
     return updateNavigation($(this).attr('title'));
});