2011-03-25 39 views
1
被删除

question回答了什么是我想要的,只是做第一次加载页面时,我不能得到的第一个元素的结果,把它移除时的部分第二个元素被点击。做出的第一个元素风格的时候下一个元素被点击

<li><a href="#">first element</a></li> 
<li><a href="#">second element</a></li> 
<li><a href="#">third element</a></li> 
li a { 
    border: 1px solid blue 
} 
.selected { 
    border-color: red 
} 

当第一次加载页面,第一个元素是不是点击,我想让它显示红色的边框颜色(选择),但被点击第二元素时,红色应该是换成蓝色。

回答

2

只需添加:

$(function() { 
    var $lia = $('li').find('a'); 

    $lia.click(function(e) { 
    $lia.removeClass('selected'); 
    $(this).addClass('selected'); 
    }); 

    $lia.first().addClass('selected'); 
}); 

Here's an example!

1

HTML:

<ul class="options"> 
<li class="selected"><a href="#">first element</a></li> 
<li><a href="#">second element</a></li> 
<li><a href="#">third element</a></li> 
</ul>  

的JavaScript:

$(function() { 
     $('ul.options').delegate('li a', 'click', function() { 
      $('li.selected').removeClass('selected'); 
      $(this).addClass('selected'); 
     }); 
    }); 

你并不需要将类添加到他第一要素w^ith JavaScript它在页面加载时总是在那里,并且如果动态添加新的li,这也将起作用。

+0

谢谢!这种方法的作品也看起来更优雅,但它需要我动态地为PHP脚本中的第一个元素添加一个独特的类。很高兴知道我可以如何使用.delegate! – alsd 2011-03-25 22:33:25

相关问题