2016-03-22 5 views
0

У меня есть этот HTML:Как получить значок данных из метки привязки?

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

Когда якорь нажал мне нужно получить атрибут-значок данных и установить другой-значок данных (например глаз).

Я стараюсь это:

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

Но это не работает.

Любая идея, как я могу реализовать ее с помощью jQuery или JavaScript?

ответ

2

просто использовать JQuery .data функцию

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

@ Майкл и я внесли некоторые изменения в ответ;) –

+0

@Michael Я добавил скрипку, проверьте его –

+0

Значок не изменится после того, как я нажму на дом. – Michael

0

функции пользователя JQuery атр, чтобы получить значение атрибутов.

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

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


}); 
0

Очень простой с чистым JavaScript.

var iconData = measureButton.dataset.icon; 
0

Как Tushar указано:

$(document).on("click", "#measureButton", function(){ 
    $(this).attr("data-icon", "eye").button("refresh"); 
}); 
Смежные вопросы