अच्छा, यह सही समाधान होगा कि यह जानना संभव था कि किसी भी कॉलबैक में कौन सा बटन दबाया गया था। दुर्भाग्य से मुझे ऐसा करने का कोई रास्ता नहीं मिल रहा है।
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/
स्रोत
2014-09-06 08:13:29
धन्यवाद यह बहुत अच्छा काम करते हैं। मुझे कॉलबैक संलग्न करने की भी एक ही समस्या का सामना करना पड़ता है। वे सिर्फ बटन ऑब्जेक्ट के बजाय पूर्ण मॉडल पास करते हैं। मुझे यह करना है कि मेरे समाधान में मैं कैसे 'sematic-ui's' modal.js में 3 और कॉलबैक जोड़ूं। यह एक बुरा समाधान था लेकिन काम किया। मैं अगली बार कोशिश करूँगा। धन्यवाद.. – netsmertia