我正在尝试将一个click事件添加到LI元素,但它没有在页面中触发。我的页面标记如下:
<div id="Navigation">
<ul>
<li class="navPrevNext inactive">|< First Page</li>
<li class="navPrevNext inactive">< 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 ></li>
<li class="navPrevNext active" title="2">Last Page >|</li>
</ul>
</div>
在我的JS代码中,我有:
$("#Navigation li").live('click', function(e) { e.preventDefault; this.blur(); return updateNavigation($(this).attr('title')); });
有什么想法吗?
TIA
答案 0 :(得分:14)
您确定代码中包含jquery 1.3吗?当我点击任何LI时,以下工作正常(直接复制并粘贴您的问题):
<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">|< First Page</li>
<li class="navPrevNext inactive">< 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 ></li>
<li class="navPrevNext active" title="2">Last Page >|</li>
</ul>
</div>
</body>
</html>
您确定您的updateNavigation功能正常吗?也许它被触发了,但内心有些不对......
答案 1 :(得分:0)
我和@Parrots做了同样的事情,它对我有用。但是,您可能希望将选择器更改为:
$("#Navigation li[title]" ).live('click', function(e) {
e.preventDefault;
this.blur();
return updateNavigation($(this).attr('title'));
});
因此处理程序仅应用于具有title属性的元素。
答案 2 :(得分:0)
我遇到了类似的问题,我使用的是用户选择的弹出列表。基本上用户点击输入框并显示ul。
这适用于500毫秒的动画效果,但是当切换到250毫秒时,向下滚动的动画太快了,显然点击事件从未触发过。
答案 3 :(得分:0)
不要使用span,这是更好的委托