2016-09-14 3 views
1

J'essaie de comprendre comment porter l'identifiant du bouton lorsque je clique sur ma fonction. 1 fonction pour changer la couleur au survol de la souris et une fonction pour revenir à la couleur d'origine lorsque le mouseout. Je sais que je peux le faire simplement en CSS, mais je veux juste apprendre à le faire en javascript. Merci d'avance. Voici mon code.Comment détecter quel bouton est cliqué en javascript?

var buttonClass = this.className(); 
 
// document.getElementById("mainTitle"); 
 
    this.style.backgroundColor="#000000"; 
 
    this.style.color="#ffffff"; 
 
    this.style.cursor = "pointer"; 
 
} 
 

 
function defaultColor() { 
 
    var buttonClasss = this.getElementById(); 
 
    //document.getElementById("addList"); 
 
    this.style.backgroundColor = "#ffffff"; 
 
    this.style.color = "#000000"; 
 
    this.style.cursor = "pointer"; 
 
} 
 
    
 

 
//event listener for Change Title button 
 
document.getElementById("mainTitle").addEventListener("mouseover", changeColor); 
 
document.getElementById("mainTitle").addEventListener("mouseout", defaultColor); 
 
document.getElementById("mainTitle").addEventListener("click", changeTitle); 
 
//event listener for change title ends here 
 

 
//event listener for add listing 
 
document.getElementById("addList").addEventListener("mouseover", changeColor); 
 
document.getElementById("addList").addEventListener("mouseout", defaultColor); 
 
document.getElementById("addList").addEventListener("click", addListing); 
 
//event listener for add listing ends here
#mainTitle { 
 
    border:1px solid #ff33f4; 
 
    float:left; 
 
    clear:both; 
 
    font-family:arial; 
 
    font-weight:bold; 
 
    font-size:20px; 
 
    border-radius:50px; 
 
    background-color:#ff33ff; 
 
    width:200px; 
 
    height:35px; 
 
    text-align:center; 
 
    padding-top:20px; 
 
    padding-bottom:10px; 
 
    cursor:pointer; 
 
} 
 

 
#addList { 
 
    border:1px solid #ff33f4; 
 
    float:right; 
 
    font-family:arial; 
 
    font-weight:bold; 
 
    font-size:20px; 
 
    border-radius:50px; 
 
    background-color:#ff33ff; 
 
    width:200px; 
 
    height:35px; 
 
    text-align:center; 
 
    padding-top:20px; 
 
    padding-bottom:10px; 
 
    cursor:pointer; 
 
} 
 

 
#main { 
 
    clear:both; 
 
    margin-top:120px; 
 
}

 
    <div id="mainTitle" class="changeTitle">Change Title</div> 
 
    <div id="addList" class="addList">Add List</div>

+0

Lorsqu'une fonction est déclenchée, il est livré avec l'argument 'event'. avec l'objet 'event' vous pouvez obtenir le bouton cliqué. en utilisant 'event.currentTarget'. –

Répondre

1

Lorsque vous attachez une fonction à un événement, vous avez vraiment pas besoin de suivre l'id de l'élément d'émission de l'événement, il vous suffit d'utiliser le « ce » mot-clé pour y accéder. Voici un exemple de ceci en utilisant votre exemple de code.

<html> 
 
<head> 
 
<style> 
 
#mainTitle { 
 
    border:1px solid #ff33f4; 
 
    float:left; 
 
    clear:both; 
 
    font-family:arial; 
 
    font-weight:bold; 
 
    font-size:20px; 
 
    border-radius:50px; 
 
    background-color:#ff33ff; 
 
    width:200px; 
 
    height:35px; 
 
    text-align:center; 
 
    padding-top:20px; 
 
    padding-bottom:10px; 
 
    cursor:pointer; 
 
} 
 

 
#addList { 
 
    border:1px solid #ff33f4; 
 
    float:right; 
 
    font-family:arial; 
 
    font-weight:bold; 
 
    font-size:20px; 
 
    border-radius:50px; 
 
    background-color:#ff33ff; 
 
    width:200px; 
 
    height:35px; 
 
    text-align:center; 
 
    padding-top:20px; 
 
    padding-bottom:10px; 
 
    cursor:pointer; 
 
} 
 

 
#main { 
 
    clear:both; 
 
    margin-top:120px; 
 
} 
 
</style> 
 
<script type="text/javascript"> 
 

 

 
function defaultColor() { 
 
    //var buttonClasss = this.getElementById(); 
 
    //document.getElementById("addList"); 
 
    this.style.backgroundColor = "#ffffff"; 
 
    this.style.color = "#000000"; 
 
    this.style.cursor = "pointer"; 
 
} 
 
    function changeColor(){ 
 
    this.style.backgroundColor="#000000"; 
 
    this.style.color="#ffffff"; 
 
    this.style.cursor = "pointer"; 
 
    } 
 
    function changeTitle(){ 
 
    } 
 
    function addListing(){ 
 
    } 
 
function OnL(){ 
 
//event listener for Change Title button 
 
document.getElementById("mainTitle").addEventListener("mouseover", changeColor); 
 
document.getElementById("mainTitle").addEventListener("mouseout", defaultColor); 
 
document.getElementById("mainTitle").addEventListener("click", changeTitle); 
 
//event listener for change title ends here 
 

 
//event listener for add listing 
 
document.getElementById("addList").addEventListener("mouseover", changeColor); 
 
document.getElementById("addList").addEventListener("mouseout", defaultColor); 
 
document.getElementById("addList").addEventListener("click", addListing); 
 
} 
 
</script> 
 
</head> 
 
<body onload="OnL()"> 
 

 
    <div id="mainTitle" class="changeTitle">Change Title</div> 
 
    <div id="addList" class="addList">Add List</div> 
 
</body> 
 
</html>

+0

merci. cela aide beaucoup – jerz

+0

Les bienvenus ... – Owuor

5

Chaque événement est livré avec volonté enregistré l'argument Event.

function defaultColor(e) { 
        //^argument (Event) 

    var currentClickedButton = e.currentTarget; // to get the current clicked button 
    /* Your code here */ 
}