2011-10-05 72 views
3

下面是HTML:启用禁用锚,jQuery的

<ul> 
    <li><a href="http://xyz.com"><img src="./xyz.png"/></a></li> 
    <li><a href="http://xyz.com"><img src="./xyz.png"/></a></li> 
    <li><a href="http://xyz.com"><img src="./xyz.png"/></a></li> 
    <li><a href="http://xyz.com"><img src="./xyz.png"/></a></li> 

</ul> 

如果我点击第二个李它应该去的链接,但不是如果我点击任何其他力。我有这个代码,我想知道一种启用默认操作的方法。

$(li[k]).click(function(){//increase the height}); 
$(li[k]).find('a').click(function(e) { 
    e.preventDefault(); 
    }); 

回答

1

如果我理解正确,你想重新启用其中一个链接的默认行为?

可以是这样做的:

$(li[k]).find('a').unbind("click"); 

这将从所选元素删除单击处理程序,基本上是将其返回到它的默认行为。

2

我建议类似如下:

$(li[k]).click(function(){//increase the height}); 
$(li[k]).find('a').click(function(e) { 
     if ($(this).parent().index() != 1){ 
      e.preventDefault(); 
     } 
    }); 

,这个工作原理是,当点击li元素的index()(基于其其兄弟姐妹之间的位置)的方式不等于1( JavaScript数组基于零,1是数组中的第二个元素),e.preventDefault()触发;否则(如果index()等于1),则允许默认动作。