2016-03-22 7 views
0

Ich habe dieses HTML:Wie bekomme ich ein Datensymbol vom Anker-Tag?

<div id="measureControl" data-role="controlgroup" data-type="vertical"> 
    <a href="#" data-role="button" data-icon="home" id="measureButton" data-iconpos="notext"></a> 
</div> 

Wenn Anker geklickt Ich muss die Daten-Symbol-Attribut erhalten und eine andere Daten-Symbol zu setzen (zum Beispiel Auge).

Ich versuche dies:

$("#measureButton").click(function() { 
     var el = $(".ui-icon", this); 
     var output = document.getElementById('output'); 
     if (el.hasClass("home")) { 
      el.removeClass("home"); 
      el.addClass("eye"); 
      output.style.display = "block"; 
     } else { 
      measureControls.line.deactivate(); 
      el.removeClass("eye"); 
      el.addClass("home"); 
      output.style.display = "none"; 
     } 
    }); 

Aber es funktioniert nicht.

Eine Idee, wie kann ich es mit jQuery oder JavaScript implementieren?

Antwort

2

nur verwenden jquery .data Funktion

$("#measureButton").click(function() { 
     var currentIcon = $(this).data('icon'); 
     alert(currentIcon); 
     $(this).data('icon','eye'); 
     var currentIcon = $(this).data('icon'); 
     alert(currentIcon); 
    }); 

https://jsfiddle.net/qs9zwwo0/

+0

@Michael und ich haben ein paar Änderungen in der Antwort gemacht;) –

+0

@Michael Ich habe eine Geige hinzugefügt es überprüfen –

+0

Das Symbol ändert sich nicht, nachdem ich auf das Haus geklickt habe. – Michael

0

Benutzer jquery attr Funktion, um das Attribut Wert.

 $("#measureButton").click(function() { 
     //to get the data icon. 
     alert($(this).attr('data-icon')); 

     // to set data icon 
     $(this).attr('data-icon','eye'); 


}); 
0

Ist sehr einfach mit reinem JavaScript.

var iconData = measureButton.dataset.icon; 
0

Wie Tushar angegeben:

$(document).on("click", "#measureButton", function(){ 
    $(this).attr("data-icon", "eye").button("refresh"); 
}); 
Verwandte Themen