Ну, идеальное решение было бы, если бы можно было узнать, какая кнопка была нажата в любом из обратных вызовов. К сожалению, я не могу найти способ сделать это.
onApprove: function() {
console.log(this); // returns the modal
console.log(arguments); // returns an empty array
}
Таким образом, вместо выше, добавьте слушателей событий на свои кнопки. Таким образом, вы знаете, какой ответ нужно выполнить.
<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>
Работа демо: http://jsfiddle.net/osgg8kzL/1/
Благодаря это отлично работает. Я также сталкиваюсь с такой же проблемой при подключении обратных вызовов. Они передают полную модель вместо простого объекта кнопки. Я должен сделать это, так как в моем решении я просто добавляю еще 3 обратных вызова в 'sematic-ui's' modal.js. Это было плохое решение, но работало. Я попробую в следующий раз. Благодаря.. – netsmertia