Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/84.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript jquery切换id';是上课吗?_Javascript_Jquery_Css - Fatal编程技术网

Javascript jquery切换id';是上课吗?

Javascript jquery切换id';是上课吗?,javascript,jquery,css,Javascript,Jquery,Css,有没有一种方法可以创建一个切换函数,首先只切换一个css样式的元素,比如背景色之类的。这会选择一个id而不是一个类,因为我知道toggleClass,但我只是想知道是否可以用id来代替 $("#gallery").load('http://localhost/index.php/site/gallerys_avalible/ #gallerys_avalible'); $('li').live('click', function(e) { e.preventDefault(

有没有一种方法可以创建一个切换函数,首先只切换一个css样式的元素,比如背景色之类的。这会选择一个id而不是一个类,因为我知道toggleClass,但我只是想知道是否可以用id来代替

$("#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;
       });

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

简言之:坏主意,坚持切换类。

编辑: 在阅读了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');
}); 


查看jQueryAPI。 这有点让人困惑,因为在jQuery切换上进行一个简单的google搜索会让您看到显示/隐藏切换文档。但是,
.toggle()
可以用于替换函数-您甚至可以添加两个以上的函数

就像这样。。。 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");

这很容易创建,但并不聪明。Id用于唯一标识单个元素。更改它们真是让人困惑。我不清楚你的问题。是否要切换使用id指定的对象的背景色?或者,是否要切换元素的实际id?切换id通常是错误的,也许你可以描述你真正想要完成的事情,我们可以提供更好的方法。切换元素的背景色。这很好,但你真的应该将CSS留给*.CSS文件的内容。这就是为什么您应该使用类进行切换。感谢函数,但有一个问题是,为什么需要单击两下才能使元素变为红色?另外,我还试图找到一种方法,使许多
  • 项目中只有一个在同一时间可以有这种红色背景,有什么想法吗?非常感谢您的帮助。:)@teresko-这只是演示切换功能,而不是编辑CSS的标准。本质上,我是在玩用户演示,以尽量减少混乱。
    function toggleId(className,id1,id2)
       {
           var tag = document.querySelector('.'+className);
           tag.id = tag.getAttribute("id") ? id2 : id1;
       }
    
    toggleId("myClass","id1","id2");