Nun, die perfekte Lösung wäre, wenn es möglich wäre zu wissen, welche Taste in einem der Rückrufe gedrückt wurde. Leider kann ich dazu keinen Weg finden.
onApprove: function() {
console.log(this); // returns the modal
console.log(arguments); // returns an empty array
}
Fügen Sie also anstelle von oben Ereignis-Listener zu Ihren Schaltflächen hinzu. Auf diese Weise wissen Sie, welcher Callback ausgeführt werden soll.
<button class="show">Open</button>
<div class="ui small modal">
<i class="close icon"></i>
<div class="header">Test title</div>
<div class="content">Test content</div>
<div class="actions">
<div class="ui button approve green" data-value="easy">Easy</div>
<div class="ui button approve blue" data-value="normal">Normal</div>
<div class="ui button approve red" data-value="hard">Hard</div>
</div>
</div>
<div>Result: <span id="result"></span></div>
<script type="text/javascript">
$(document).on("click", ".show", function() {
$(".ui.modal").modal("setting", {
closable: false,
onApprove: function() {
return false;
}
}).modal("show");
}).on("click", ".ui.button", function() {
switch ($(this).data("value")) {
case 'easy':
$("#result").html("easy");
$(".ui.modal").modal("hide");
break;
case 'normal':
$("#result").html("normal");
$(".ui.modal").modal("hide");
break;
case 'hard':
$("#result").html("hard");
$(".ui.modal").modal("hide");
break;
}
});
</script>
Arbeits Demo: http://jsfiddle.net/osgg8kzL/1/
Dank es große Arbeit. Ich habe auch das selbe Problem, Callbacks anzuhängen. Sie übergeben das vollständige Modell anstelle nur des Schaltflächenobjekts. Ich muss es so machen, wie es in meiner Lösung ist, ich füge nur 3 weitere Callbacks in 'sematic-ui's' modal.js hinzu. Es war eine schlechte Lösung, aber funktionierte. Ich werde es nächstes Mal versuchen. Vielen Dank.. – netsmertia