更改父项目识别链接点击链接

时间:2012-06-15 14:49:16

标签: jquery css hyperlink anchor

<div id="content-container">
<ul>
<li id="link1"><a  href="http://mysite/ClassifiedPrograms/Pages/Training1.aspx">Training1</a></li>
<li id="link2" ><a  href="http://mysite/ClassifiedPrograms/Pages/Training2.aspx">Training2</a></li>

<li id="link3"  ><a href="http://mysite/ClassifiedPrograms/Pages/Training3.aspx">Training3</a></li>
<li id="link4" ><a href="http://mysite/ClassifiedPrograms/Pages/Training4.aspx">Training4</a></li>

</ul>
</div>

当点击任何链接时,如果点击了link1,则点击该链接应该更改父li id并使其clickedlink1。我如何在jquery中做到这一点?

6 个答案:

答案 0 :(得分:2)

你不应该改变ID,因为它们就是那个(在我看来)。

在这种情况下,我会使用jQuery addClass()removeClass()toggleClass()跟踪已点击的内容,因此点击后,您需要添加课程clickedli元素。

http://api.jquery.com/addClass/

http://api.jquery.com/removeClass/

http://api.jquery.com/toggleClass/

这样:

$(document).ready(function() {
    $("a").click(function(event){
         $(this).parent().toggleClass("clicked");
    });
});

作为跟踪点击状态的粗略示例,您可以使用$(".clicked")选择器来获取这些元素。

答案 1 :(得分:2)

使用jQuery:

$('#content-container a).click(function(e) {
   e.preventDefault();
   $(this).parent().attr('id', 'clicked' + (this).attr('id'));
});

但你不应该真正改变id,你宁愿设置一个类

$('#content-container a).click(function(e) {
 e.preventDefault();
 $(this).parent().addClass('clicked');
});

答案 2 :(得分:1)

单击链接时更改li的类不一定有用,因为只要新页面加载就会重置。

你可以改用:

$("a:visited").parent("li").addClass("is_visited");

将添加班级&#34; is_visited&#34;到访问过该链接的任何li

答案 3 :(得分:0)

您应该以某种方式将该数字添加到链接,可能是data-nr属性。

然后:

  1. 为链接分配事件监听器

    $('a').click(function(){ });

  2. 提取数字

    var nr = $(this).attr('data-nr');

  3. 设置父ID

    $(this).parent().attr('id', 'clickedlink'+nr);

答案 4 :(得分:0)

将其放在您网站的头部或任何Javascript文件中:

$(document).ready(function () {    
$('a').click(function () {
$(this).parent().attr('id', 'clicked' + $(this).parent().attr('id'));
});
});

答案 5 :(得分:0)

​$(document).ready(function(){
    $("#content-container a").click(function(){
          var id = $(this).parent().attr("id");
          $(this).parent().attr("id","clicked" + id);

    });        
});​