Como alternar conteúdo Semântico de INTERFACE do usuário botões?
-
21-12-2019 - |
Pergunta
O documentação diz um botão pode ser formatado para ativar ou desativar, mas o exemplo dado é meramente
<div class="ui toggle button">
Vote
</div>
que, naturalmente, não funciona.Uma inspeção do código fonte do exemplo revela uma active
classe por meio de programação é adicionado.
Eu provavelmente estou faltando alguma coisa simples, mas como eu posso criar um botão de alternância, como no exemplo?O que é a sintaxe para especificar o que, para alternar entre a?
Solução
O código abaixo está a fazer a mágica:
semantic.button = {};
// ready event
semantic.button.ready = function() {
// selector cache
var
$buttons = $('.ui.buttons .button'),
$toggle = $('.main .ui.toggle.button'),
$button = $('.ui.button').not($buttons).not($toggle),
// alias
handler = {
activate: function() {
$(this)
.addClass('active')
.siblings()
.removeClass('active')
;
}
}
;
$buttons
.on('click', handler.activate)
;
$toggle
.state({
text: {
inactive : 'Vote',
active : 'Voted'
}
})
;
};
// attach ready event
$(document)
.ready(semantic.button.ready)
;
Outras dicas
A maneira mais fácil para obter os botões de alternância de trabalho sem quaisquer opções etc é o seguinte:
$('.ui.button.toggle').state();
Este deve alternar entre o padrão de cinza e verde, as cores clique.Veja outras respostas para o mais complicado de comportamento.Certifique-se de que o DOM etc é carregado pela primeira vez como com outros semântica UI inicializadores.
É muito simples,
<button class="ui toggle button active" id="tgl">Toogle button</button>
basta usar o clássico jquery clique para toogle de classe ativa, e adicionar quaisquer outras alterações que você precisa.Eu acho que o uso de semântica estágio é um desperdício de tempo neste caso.
$('#tgl').click(function(){
$(this).toggleClass('active');
});
O seguinte código simples é trabalhar bem para duas diferentes botões de alternância com o evento onClick.Obrigado Mukesh para me inspirar.
<!DOCTYPE html>
<html>
<head>
<title>Page Title</title>
<link rel="stylesheet" type="text/css" href="../../dist/semantic.css">
<script src="../assets/library/jquery.min.js"></script>
<script src="../../dist/semantic.js"></script>
</head>
<script>
function show(b){
alert( $(b).hasClass("active"));
}
// attach ready event
$(document)
.ready(function() {
var $toggle = $('.ui.toggle.button');
$toggle
.state({
text: {
inactive : 'Vote',
active : 'Voted'
}
})
;
})
;
</script>
<body>
<button class="ui toggle button" onclick="show(this)">
Vote
</button>
<br/><br/>
<button class="ui toggle button" onclick="show(this)">
Vote
</button>
</body>
</html>