jquery切换id而不是类?

时间:2011-09-12 22:06:25

标签: javascript jquery css

有没有办法制作切换功能,首先切换一个css样式元素,例如背景颜色或类似的东西。我选择了一个id而不是一个类,因为我知道了toggleClass,但我只是想知道是否可以用ids代替它?

$("#gallery").load('http://localhost/index.php/site/gallerys_avalible/ #gallerys_avalible'); 
  $('li').live('click', function(e) {  
      e.preventDefault();
      if(!clickCount >=1) {
        $(this).css("background-color","#CC0000");
        clickCount++; 
        }  
       console.log("I have been clicked!");
       return false;
       });

3 个答案:

答案 0 :(得分:3)

你真的应该使用类。 ID在页面中是唯一的,应该用作捕获事件的点(通过$.live()或其他使用事件委派的方法)。此外,如果您考虑使用ID,因为它们在CSS规则中具有更高的特异性,那么您的方法是错误的。

简而言之:糟糕的主意,坚持切换课程。

答案 1 :(得分:2)

编辑:

在阅读OP的评论后 - 我相信这正是他正在寻找一种突出点击“活跃”链接的方法。是的,teresko肯定是你应该切换课程,而不是ID。

这是您可能正在寻找的jQuery代码段的精髓:

$("li").bind('click', function(){
   // remove the active class if it's there
   if($("li.active").length) $("li.active").removeClass('active');
   // add teh active class to the clicked element
   $(this).addClass('active');
}); 

Demo


查看jQuery toggle api。

这有点令人困惑,因为在jQuery切换上进行简单的谷歌搜索会带您进入显示/隐藏切换文档。但是,.toggle()可用于替代功能 - 您甚至可以添加两个以上的功能。

喜欢......

$("el").toggle(
       function(){
          $(this).css('background-color', 'red');
       },
       function(){
           $(this).css('background-color, ''); // sets the bg-color to nothing
       });

答案 2 :(得分:0)

jQuery不具有toggleId()函数。但是您可以创建自己的id切换功能。

function toggleId(className,id)
{
    var tag = document.querySelector('.'+className);
    tag.id = tag.getAttribute("id") ? '' : id;
}

toggleId("myClass","id");

这将切换myClass元素的id(id和NULL)。

另一个在两个ID之间切换的示例

假设您要在元素的id(id1和id2)之间切换,然后

function toggleId(className,id1,id2)
   {
       var tag = document.querySelector('.'+className);
       tag.id = tag.getAttribute("id") ? id2 : id1;
   }

toggleId("myClass","id1","id2");