2013-06-29 94 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