2013-06-29 95 views
1

我有一个简单的JavaScript,它将样式添加到滑块时,将显示,但我想删除下一个滑块时的样式,并在鼠标移除这两种样式。javascript添加样式删除样式

这是我的javascript函数,它将style =“width:200px”添加到新滑块并向旧的添加style =“width:200px”。

function test(){ 
    var read = document.getElementById("slide-0") // how can i add here to read the incremented slide-0, slide-1, slide-2 
     .removeAttribute("style",0); 
} 

    function noEffect(pOld,pNew){ 

     if (pOld){ 
      pOld.style.width='10px'; 
     } 

     if (pNew){ 
      pNew.style.width='200px'; //this style become on active slider. 
     } 
    } 

滑块HTML

<div class="slider" onMouseOver="test()"> 
<ul> 
<li id="slide-0" class="slide" style="width: 10px"><img src="image.jpg"></li> 
<li id="slide-1" class="slide" style="width: 200px"><img src="image.jpg"></li> <!-- this is active now --> 
</ul> 
</div> 

正是我想要的是在鼠标悬停除去双方的风格。

任何帮助表示赞赏。

+0

id为 “滑动0” 是重复的,ID不能重复。 '

  • ' –

    +0

    是的,对不起,我复制粘贴,我现在修改。 – Dario

    +0

    不错。很高兴你设法解决你的问题。 –

    回答

    2

    一个很不错的解决方案是使用类。而不是添加样式,添加和删除类。以下代码将向将被样式化的组件添加一个类。

    var d = document.getElementById("div1"); 
    d.className = d.className + " widthAlteration"; 
    

    而在你的CSS有:

    .widthAlteration 
    { 
        //width alteration 
    } 
    

    如果你想恢复的效果,只是做了相同的:

    var d = document.getElementById("div1"); 
    d.className = ""; 
    

    或者为了方便有集成命令即:

    var ele = document.getElementById("div1"); 
    addClass(ele, "widthAlteration"); 
    // or 
    removeClass(ele, "widthALteration"); 
    

    Seein g因为前面的部分不工作,我会建议jQuery

    在您的项目中实现.js文件并使用jQuery。它是最常用的库之一。很少见到JS以原始形式完成(也许如果你只需要执行一个简单的操作),但在一般情况下,jQuery是要走的路。

    实施后,添加到您的项目:

    <script> 
    $(document).ready(function() { 
    //$("here goes the ID, class, component w.e. you desire") 
        $(".widthAlteration").click(function(){ 
         $(this).removeClass(".widthAlteration"); 
        }); 
    }); 
    </script> 
    
    +0

    没有这个解决方案的运气。非常感谢。 – Dario

    +1

    @Alexey - addClass()和removeClass()定义在哪里? (你说他们是“集成的”,但它们不是标准的JS/DOM函数。)另外,请注意''d.className =“”;''会从有问题的元素中移除_all_类。 – nnnnnn

    +1

    什么nnnnnn说。但使用班级*是正确的想法。 –

    1

    指定0px

    pOld.style.width='0px'; 
    
    +0

    yes,on apply pOld.style.width ='0px';隐藏滑块。 – Dario

    +0

    它是为你的工作 – PSR

    +0

    和鼠标悬停在其他滑块李,其中一个滑块李有宽度:200px,我需要删除鼠标。 – Dario